home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / hk2 / bas / hk2lite.bas < prev    next >
Encoding:
BASIC Source File  |  1995-08-03  |  95.2 KB  |  2,461 lines

  1. 10 '------------------------------------------------------------------
  2. 20 '  HK2LITE.BAS  Copyrigit(C) T.Komura      / 家計簿システム HK   /
  3. 30 '                                         /      Version 2      /
  4. 31 '  Version 4.0  1992.06.20-1992.06.28    / 入力・編集プログラム /
  5. 32 '  Version 1.0  1993.01.01 公開バージョン
  6. 33 '  Version 1.1a 1993.01.01 辞書入力追加
  7. 34 '  Version 1.1b 1993.01.01 外部ファイルによる辞書入力スイッチ
  8. 35 '  Version 1.2  1993.01.01 金額の電卓入力追加
  9. 36 '  Version 1.3  1993.12.26 項目に小分類追加 残高計算機能追加
  10. 37 '  Version 1.4  1994.06.12 小分類廃止                  
  11. 38 '  Version 1.4d 1994.07.08 月間累計額の演算月を表示日の月に変更
  12. 39 '  Version 1.4e 1994.07.12 定額項目編集機能追加
  13. 40 '     V2.0 L10a 1995.05.14 Version 2.0 HK2とする
  14. 41 '     V2.0 L10e 1995.07.03 家計簿ファイル作成、累計演算に処理状況表示追加
  15. 42 '     V2.0 Lite 1995.07.09 [記入]部を独立させ、Liteとする。
  16. 100 '------------------------------------------------------------------
  17. 140 CLEAR ,,,,,300*1024
  18. 150 DIM CFI$(15)
  19. 170 GOSUB *CONFIGファイルチェック
  20. 190 '
  21. 200 *初期設定:'--------------------------------------------------------
  22. 210 CMD$="CD "+PRGDRV$:SHELL CMD$
  23. 220 CONSOLE 0,24,0:MOUSE 0
  24. 221 MOUSE 0
  25. 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
  26. 240 LOAD@ FMBDRV$+"\FMP.FMB"
  27. 250 PLAY "@30T150V6":DATX$=DATE$
  28. 255 'ウインドウ関係座標配列
  29. 256 G=8:B=50
  30. 260 DIM B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B),BST(G,B)
  31. 265 DIM W_X1(G),W_X2(G),W_Y1(G),W_Y2(G)
  32. 266 DIM W_XA(G),W_XB(G),W_YA(G),W_YB(G)
  33. 267 DIM MD_SB#(10465),MD_SW#(10465):'max : HELP window
  34. 268 'デ-タ配列
  35. 270 DIM DYN$(16),DRM$(16),DYN#(16),EVDT$(12,32)
  36. 274 DIM DYNX#(15)                             :'累計計算用一時記憶
  37. 275 DIM DYT$(15),DYM$(15),DYA$(15),DYR$(15)   :'累計データ
  38. 276 DIM DYT#(15),DYM#(15),DYA#(15),DYR#(15)   :'累計データ
  39. 280 DIM WRD$(15,128),WLN(15,128),WRDM(128)    :'辞書データ
  40. 290 DIM COX$(10,5)                            :'定額データ
  41. 295 DIM DOC$(2000)                            :'HELPデータ
  42. 300 INTERVAL 1                  :'プログラム先頭
  43. 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭 
  44. 320 GOSUB *ボタン座標読み取り
  45. 325 GOSUB *MCREAD:GOSUB *DCLOCKREAD
  46. 330 'CLS:COLOR 7:PRINT int((int(((155-14+1)+7)/8)*(415-131+1)*4+8-1)/8)
  47. 360 DIM LMB#(900),ABOUTD#(2071),HLPL#(397),HLPC#(8449)
  48. 370 ON ERROR GOTO *ERROR
  49. 380 '
  50. 410 CBMAX=24:'コントロールボタン個数
  51. 420 BSAVE  =10:'保存ボタン番号
  52. 422 BLOAD  =9 :'読込ボタン番号
  53. 424 HKIN   =16:'記入ボタン番号
  54. 426 HKINEND=24:'終了ボタン番号
  55. 440 DOCF$="\HK2Lite.HLP"
  56. 500 '------------------------------------------------------------------
  57. 510 休日1$="(祝日)" ' 休日を検出する行事ファイル内のキーワード 1
  58. 520 休日2$="(休日)" '
  59. 530 代休1 =1        ' 休日が日曜日と重なった場合月曜日を代休とする時"1" 
  60. 540 代休2 =0        ' 会社等の休日
  61. 550 '
  62. 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  63. 1005 GOSUB *SEFFECT1:MOUSE 1,320,64,1:MCN=2:GOSUB *MCDSET
  64. 1010 GOSUB *HKID  :'先頭インデックスファイルチェック
  65. 1012 GOSUB *HKISSF:'起算ファイル検出
  66. 1030 GOSUB *EVGET:'行事データファイル読み込み
  67. 1035 GOSUB *本日の日付
  68. 1040 GOSUB *検索ジャンプチェック
  69. 1041 GOSUB *日付表示
  70. 1045 GOSUB *起算日表示
  71. 1050 IF DICIF=1 THEN GOSUB *DICREAD
  72. 1060 GOSUB *辞書入力スイッチ
  73. 1065 GOSUB *電卓入力スイッチ
  74. 1070 MCN=1:GOSUB *MCDSET
  75. 1080 GOSUB *指定日データ表示
  76. 1090 MESN=7:GOSUB *SNDMSG
  77. 1100 *メイン選択
  78. 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
  79. 1120 MCN=1:GOSUB *MCDSET
  80. 1130 G=1:SWPASS=1:GOSUB *MCSELECT'ボタン選択 
  81. 1135 IF SWNO<0 THEN 1130
  82. 1140 IF SWNO<>0 THEN 1145
  83. 1141 GOSUB *カレンダー検索:IF CLDSW=1 THEN GOTO *CLDSELECT
  84. 1142 GOSUB *項目検索      :IF ITMSW=1 THEN GOTO *ITMSELECT
  85. 1143 GOSUB *MCMIS:GOTO 1130
  86. 1145 IF SWNO>=CBMAX+1 THEN *SSEL
  87. 1150 '            yr-  yr+  mn-  mn+  dy-  dy+  wk-  wk+  load save calc dic
  88. 1151 '            totl cnst HK2  IN   SRC  ANL  CLD  CFG  DATE、時計 help exit
  89. 1153 ON SWNO GOTO *S02,*S01,*S04,*S03,*S06,*S05,*S08,*S07,*S09,*S10,*S11,*S12,                                         *S13,*S14,*S15,*S99,*S99,*S99,*S99,*S99,*S21,*S24,*S22,*S23
  90. 1200 '
  91. 3000 *CLDSELECT:' カレンダー指定-------------------------------------
  92. 3010  DY=SELDAY: BSNDOFF=1
  93. 3020  YDEF=0 :MDEF= 0:DDEF= 0: GOTO *YMDRNEW
  94. 3400 *S01:' 1年先 ---------------------------------------------------
  95. 3405  YDEF=+1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
  96. 3410 *S02:' 1年前 ---------------------------------------------------
  97. 3415  YDEF=-1:MDEF= 0:DDEF= 0: GOTO *YMDRNEW
  98. 3420 *S03:' 1月先 ---------------------------------------------------
  99. 3425  YDEF= 0:MDEF=+1:DDEF= 0: GOTO *YMDRNEW
  100. 3430 *S04:' 1月前 ---------------------------------------------------
  101. 3435  YDEF= 0:MDEF=-1:DDEF= 0: GOTO *YMDRNEW
  102. 3440 *S05:' 1日先 ---------------------------------------------------
  103. 3445  YDEF= 0:MDEF= 0:DDEF=+1: GOTO *YMDRNEW
  104. 3450 *S06:' 1日前 ---------------------------------------------------
  105. 3455  YDEF= 0:MDEF= 0:DDEF=-1: GOTO *YMDRNEW
  106. 3460 '
  107. 3500 *S07:' 1週間先 -------------------------------------------------
  108. 3505  YDEF= 0:MDEF= 0:DDEF=+1: WDEF=1:GOTO *YMDRNEW
  109. 3510 *S08:' 1週間前 -------------------------------------------------
  110. 3515  YDEF= 0:MDEF= 0:DDEF=-1: WDEF=1:GOTO *YMDRNEW
  111. 3520 *S21:' 本日 ----------------------------------------------------
  112. 3525  YR=TY:MN=TM:DY=TD
  113. 3530  YDEF= 0:MDEF= 0:DDEF= 0:GOTO *YMDRNEW
  114. 3560 '
  115. 3570 *YMDRNEW
  116. 3575  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  117. 3580  IF IPF=0 THEN 3610
  118. 3585  MESN=4:GOSUB *MESDSP
  119. 3590  CMES$="家計簿データ保存実行":GOSUB *確認
  120. 3600  IF CAUNO=2 THEN 3610
  121. 3605  GOSUB *家計簿データ保存
  122. 3610  GOSUB *年月日変更
  123. 3612  IF WDEF=0 THEN 3630 ELSE WDEF=0:DDEFX=DDEF
  124. 3614  FOR WKCII=2 TO 7:YDEF=0:MDEF=0:DDEF=DDEFX
  125. 3616    GOSUB *年月日変更
  126. 3618  NEXT WKCII
  127. 3630  GOSUB *日付表示
  128. 3650  MESN=6:GOSUB *MESDSP
  129. 3660  GOSUB *指定日データ表示
  130. 3670  IPF=0
  131. 3680  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  132. 3690  GOTO *メイン選択
  133. 3695 '
  134. 3700 *SSEL:'------------------------------------------------------------
  135. 3720  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  136. 3730  IPNO=B-(CBMAX+1):SWNOX=SWNO
  137. 3740  IF IPNO=0 THEN GOSUB *出来事入力   :GOTO 3770
  138. 3750     MESN=11:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  139. 3755                 GOSUB *金額入力
  140. 3760     MESN=12:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  141. 3765                 GOSUB *内容入力
  142. 3770  IPF=1:WAIT SWAIT
  143. 3780  G=1:B=SWNOX:BST(G,B)=0:GOSUB *BTN_ONOFF
  144. 3785  MES2OFF=0
  145. 3790  GOTO *メイン選択
  146. 3795 '
  147. 3800 *ITMSELECT:'-------------------------------------------------------
  148. 3810  IPNO=ITMN:SWNO=IPNO+CBMAX+1:SWNOX=SWNO
  149. 3820  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  150. 3830  IF IPNO=0 THEN GOSUB *出来事入力:GOTO 3870
  151. 3840  IF ITMK=2 THEN 3855
  152. 3845     MESN=11:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  153. 3850                 GOSUB *金額入力  :GOTO 3870
  154. 3855     MESN=12:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  155. 3860                 GOSUB *内容入力
  156. 3870  IPF=1:WAIT SWAIT
  157. 3880  G=1:B=SWNOX:BST(G,B)=0:GOSUB *BTN_ONOFF
  158. 3885  SWNO=SWNOX:MES2OFF=0
  159. 3890  GOTO *メイン選択
  160. 3895 '
  161. 3995 '
  162. 4000 *S09:'取消 --------------------------------------------------------
  163. 4010  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF 
  164. 4020  MESN=6:GOSUB *MESDSP
  165. 4030  GOSUB *指定日データ表示
  166. 4035  IPF=0
  167. 4040  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  168. 4050  GOTO *メイン選択
  169. 4060 '
  170. 4500 *S10:'保存 --------------------------------------------------------
  171. 4505  MCN=2:GOSUB *MCDSET
  172. 4510  GOSUB *家計簿データ保存
  173. 4530  GOSUB *指定日データ表示
  174. 4580  GOTO *メイン選択
  175. 4590 '
  176. 5000 *S12:'辞書使用スイッチ --------------------------------------------'
  177. 5010  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  178. 5020  IF DICIF=0 THEN MESN=14 ELSE MESN=15
  179. 5030  GOSUB *MESDSP
  180. 5035  DICIF=1-DICIF
  181. 5036  IF DICIF=1 AND DICEXF=0 THEN GOSUB *DICREAD
  182. 5040  GOSUB *辞書入力スイッチ:WAIT SWAIT\1+1'
  183. 5050  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  184. 5060  GOTO *メイン選択
  185. 5070 '
  186. 5100 *S11:'電卓使用スイッチ --------------------------------------------'
  187. 5110  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  188. 5120  IF CALCF=0 THEN MESN=18 ELSE MESN=19
  189. 5130  GOSUB *MESDSP
  190. 5135  CALCF=1-CALCF
  191. 5140  GOSUB *電卓入力スイッチ:WAIT SWAIT\1+1'
  192. 5150  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  193. 5160  GOTO *メイン選択
  194. 5170 '
  195. 5200 *S13:'累計表示-----------------------------------------------------'
  196. 5210  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  197. 5220  GOSUB *累計表表示
  198. 5250  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  199. 5260  GOTO *メイン選択
  200. 5270 '
  201. 5300 *S14:'定額処理-----------------------------------------------------'
  202. 5310  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  203. 5320  IF IPF=0 THEN 5420
  204. 5330  MESN=4:GOSUB *MESDSP
  205. 5340  CMES$="家計簿データ保存実行":GOSUB *確認
  206. 5350  IF CAUNO=2 THEN 5420
  207. 5360  GOSUB *家計簿データ保存
  208. 5420  GOSUB *定額支出編集
  209. 5450  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  210. 5460  GOTO *メイン選択
  211. 5490 '
  212. 6000 *S15:'About HK2---------------------------------------------------'
  213. 6010  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  214. 6020  MESN=1:GOSUB *MESDSP
  215. 6030  GOSUB *ABOUT表示
  216. 6060  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  217. 6070  GOTO *メイン選択
  218. 6080 '
  219. 6100 *S22:'Help ---------------------------------------------------'
  220. 6110  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  221. 6120  MESN=20:GOSUB *MESDSP
  222. 6130  GOSUB *HKHELP
  223. 6160  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  224. 6170  GOTO *メイン選択
  225. 6180 '
  226. 6200 *S24:'Digital Clock ----------------------------------------------'
  227. 6210  G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  228. 6220  MESN=1:GOSUB *MESDSP
  229. 6230  GOSUB *DGCLOCK
  230. 6260  G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  231. 6270  GOTO *メイン選択
  232. 6280 '
  233. 8000 *S99:'プログラム呼び出し・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  234. 8010 GOTO *メイン選択
  235. 8020 G=1:B=HKIN:BST(G,B)=0:GOSUB *BTN_ONOFF
  236. 8025 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  237. 8030  IF IPF=0 THEN 8110
  238. 8035  MESN=4:GOSUB *MESDSP
  239. 8040  CMES$="家計簿データ保存実行":GOSUB *確認
  240. 8045  IF CAUNO=2 THEN 8110
  241. 8050  GOSUB *家計簿データ保存
  242. 8110 MESN=9:GOSUB *MESDSP':MESN=24:GOSUB *SNDMSG
  243. 8120 INTERVAL OFF:GOSUB *SEFFECT2
  244. 8130 ON SWNO-15 GOTO *S99,*S17,*S18,*S19,*S20
  245. 8150 *S16:STOP'
  246. 8160 *S17:RUN "HK2src.bas"
  247. 8170 *S18:RUN "HK2anl.bas"
  248. 8180 *S19:RUN "HK2cld.bas"
  249. 8190 *S20:RUN "HK2cfg.bas"
  250. 8940 '
  251. 9000 *S23:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  252. 9020 G=1:B=HKINEND:BST(G,B)=1:GOSUB *BTN_ONOFF
  253. 9030  IF IPF=0 THEN 9110
  254. 9035  MESN=4:GOSUB *MESDSP
  255. 9040  CMES$="家計簿データ保存実行":GOSUB *確認
  256. 9045  IF CAUNO=2 THEN 9110
  257. 9050  GOSUB *家計簿データ保存
  258. 9060 '
  259. 9110 MESN=9:GOSUB *MESDSP:MESN=6:GOSUB *SNDMSG
  260. 9120 INTERVAL OFF:GOSUB *SEFFECT2
  261. 9150 SYSTEM 'RUN "HK2.bas"
  262. 9160 '
  263. 9900 '-------------------------------------------------------------------
  264. 9910 '    GENERAL SUB ROUTINE
  265. 9920 '-------------------------------------------------------------------
  266. 10000 *CHR1IN:'////////// 1文字入力
  267. 10010  A$=INKEY$:IF A$="" THEN 10010
  268. 10020  A=INSTR(C$,A$)
  269. 10030  IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
  270. 10040  RETURN
  271. 10050 '
  272. 10060 '
  273. 10070 *MESDSP:'////////// メッセージ表示
  274. 10080  RESTORE *MESDAT
  275. 10090  FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
  276. 10105  LINE(0,465)-(639,479),PSET,0,BF
  277. 10115  SYMBOL(0,465),MES$,.75!,.75!,CM
  278. 10120  'IF BM=1 THEN PLAY "L4O4A"
  279. 10130  RETURN
  280. 10140 '
  281. 10200 *MESDAT:'////////// メッセージデータ
  282. 10205 '    XM, YN, CM, CB, BM
  283. 10210 DATA  2, 23,  5,  0,  1 :'--- 01
  284. 10215 DATA "家計簿システム HK2 Lite"
  285. 10220 DATA  2, 23,  7,  0,  0 :'--- 02
  286. 10225 DATA "適当なボタンをマウスカーソルで押して(左クリック)ください。"
  287. 10230 DATA  2, 23,  6,  0,  0 :'--- 03
  288. 10235 DATA "ディスクにこの月の家計簿ファイルがありません。新しくファイルを作りますか?"
  289. 10240 DATA  2, 23,  6,  0,  1 :'--- 04
  290. 10245 DATA "家計簿データが保存されていません!  保存する--[OK] 保存しない--[NG]"
  291. 10250 DATA  2, 23,  4,  0,  1 :'--- 05
  292. 10255 DATA "★家計簿ファイル新規作成中 !!"
  293. 10260 DATA  2, 23,  4,  0,  1 :'--- 06
  294. 10265 DATA "★家計簿ファイル読み込み中 !!"
  295. 10270 DATA  2, 23,  6,  0,  0 :'--- 07
  296. 10275 DATA "家計簿ファイルが無いため、この月のデータは読み込みできません!"
  297. 10280 DATA  2, 23,  7,  0,  0 :'--- 08
  298. 10285 DATA "このデータを家計簿ファイルに書き込んでよろしいですか? [OK],[NG]"
  299. 10290 DATA  2, 23,  5,  0,  1 :'--- 09
  300. 10295 DATA "★★★  しばらくお待ちください。"
  301. 10300 DATA  2, 23,  5,  0,  0 :'--- 10
  302. 10305 DATA "                                                                   出来事を記入してください。"
  303. 10310 DATA  2, 23,  5,  0,  0 :'--- 11
  304. 10315 DATA "                                                                     金額を記入してください。"
  305. 10320 DATA  2, 23,  5,  0,  0 :'--- 12
  306. 10325 DATA "                                                                     内容を記入してください。"
  307. 10330 DATA  2, 23,  4,  0,  1 :'--- 13
  308. 10335 DATA "★ 家計簿データ保存中。"
  309. 10340 DATA  2, 23,  4,  0,  1 :'--- 14
  310. 10345 DATA "各項目入力時の辞書入力を[ON]にします。"
  311. 10350 DATA  2, 23,  4,  0,  1 :'--- 15
  312. 10355 DATA "各項目入力時の辞書入力を[OFF]にします。"
  313. 10360 DATA  2, 23,  4,  0,  1 :'--- 16
  314. 10365 DATA "★ 辞書データ読み込み中  しばらくお待ちください"
  315. 10370 DATA  2, 23,  7,  0,  1 :'--- 17
  316. 10375 DATA "辞書から語句を選んでください。 "
  317. 10380 DATA  2, 23,  4,  0,  1 :'--- 18
  318. 10385 DATA "各項目の金額入力時に電卓を[ON]にします。"
  319. 10390 DATA  2, 23,  4,  0,  1 :'--- 19
  320. 10395 DATA "各項目の金額入力時に電卓を[OFF]にします。"
  321. 10400 DATA  2, 23,  5,  0,  1 :'--- 20
  322. 10405 DATA "HKHELP★記入モードの説明を表示しています。  頁移動-[ヒ][フ] 行移動-[▲][▼] 終了-[■]" 
  323. 10410 DATA  2, 23,  7,  0,  1 :'--- 21
  324. 10415 DATA "表は表示月の累計額及び今日現在の総累計額です。 [取消]-取消し"
  325. 10420 DATA  2, 23,  6,  0,  1 :'--- 22
  326. 10425 DATA "家計簿ファイルがありません。 表示年月日を強制変更します。"
  327. 10430 DATA  2, 23,  4,  0,  1 :'--- 23
  328. 10435 DATA "★累計・残高計算実行中。"
  329. 10440 DATA  2, 23,  7,  0,  1 :'--- 24
  330. 10445 DATA "[ネ]-内容設定 [▲/▼]-転記先変更 [allCopy/Copy]-転記 [終了]-終了"
  331. 10450 DATA  2, 23,  6,  0,  1 :'--- 25
  332. 10455 DATA "                                                                    内容を記入してください。"
  333. 10460 DATA  2, 23,  4,  0,  1 :'--- 26
  334. 10465 DATA "★定額支出項目を家計簿データファイルへ転記中。"
  335. 10470 DATA  2, 23,  6,  0,  1 :'--- 27
  336. 10475 DATA "定額支出項目を記入済みです。 転記をキャンセルします。"
  337. 10480 DATA  2, 23,  6,  0,  1 :'--- 28
  338. 10485 DATA "転記先が指定されていません。 転記をキャンセルします。"
  339. 10490 DATA  2, 23,  4,  0,  1 :'--- 29
  340. 10495 DATA ""
  341. 10590 '
  342. 10600 *SEFFECT1'////////////////////////////////////////////////////////
  343. 10605  SCREEN 1,1,2,1:PALETTE 9,[0,0,0]:LINE(0,0)-(639,479),PSET,1,BF
  344. 10610  GOSUB *表紙表示' SCREEN 1,0,2,1:GOSUB *表紙表示
  345. 10612  SCREEN 1,1,3,1:
  346. 10620  FOR II=0 TO 240 STEP 2:PALETTE 9,[II,II,II]
  347. 10621 '   LINE(320-II,240-II*3/4)-(320+II,240+II*3/4),PSET,0,B
  348. 10622     LINE(0,240-II)-(639,240+II),PSET,0,BF
  349. 10623  NEXT II
  350. 10630  INTERVAL ON' SCREEN 1,0,1,0:INTERVAL ON
  351. 10640  SCREEN 0
  352. 10645  RETURN
  353. 10650 '
  354. 10700 *SEFFECT2'////////////////////////////////////////////////////////
  355. 10712  SCREEN 1,1,3,1:
  356. 10720  FOR II=240 TO 0 STEP -1:PALETTE 9,[II,II,II]
  357. 10721     LINE(0,240+II)-(639,240-II),PSET,1,B
  358. 10723  NEXT II
  359. 10730  MESN=9:GOSUB *MESDSP
  360. 10740  RETURN
  361. 10990 '
  362. 11000 *SNDMSG:'  SAVE "SNDMSG.SUB",A
  363. 11005  IF SNDMF=0 THEN RETURN
  364. 11010  '・・・・・・・・・・・・・・・・・  サウンドメッセージ実行サブルーチン  1989.02.04
  365. 11020  '                   入力=MESN (メッセージNo.)
  366. 11030  '
  367. 11070  IF MESN>36 THEN *RETURN_SNDMSG :'END
  368. 11080  RESTORE *MSGNAM
  369. 11090  FOR IMSG=1 TO MESN
  370. 11100    READ MSGD$
  371. 11110  NEXT IMSG
  372. 11120  MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
  373. 11130  LOAD@ MSGFN$,MSGD%
  374. 11140  PCMPLAY MSGD%:WAIT SWAIT\1+1
  375. 11150 *RETURN_SNDMSG :RETURN
  376. 11160 *MSGNAM :'////////// .SND File Name Data
  377. 11170 DATA "OHA1"   :'  1 おはよう
  378. 11180 DATA "KONN"   :'  2 こんにちわ
  379. 11190 DATA "KONBAN" :'  3 こんばんわ
  380. 11200 DATA "goyuku" :'  4 ごゆっくり
  381. 11210 DATA "GOKRO2" :'  5 ごくろうさま
  382. 11220 DATA "OTUKA"  :'  6 お疲れさま
  383. 11230 DATA "DOUZO"  :'  7 おまたせ
  384. 11240 DATA "ARIGA2" :'  8 ありがとう
  385. 11250 DATA "RUNRUN" :'  9 るんるん
  386. 11260 DATA "DAMEDE" :' 10 だめでしょう
  387. 11270 DATA "IIDE1"  :' 11 いいですか
  388. 11280 DATA "NANISI" :' 12 なにしてるの
  389. 11290 DATA "DAMEDA" :' 13 だめだめ
  390. 11300 DATA "OWARI"  :' 14 終わりました
  391. 11310 DATA "SIBA"   :' 15 しばらくお待ち下さい
  392. 11320 DATA "YOROSI" :' 16 よろしいですか
  393. 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
  394. 11340 DATA "ERANDE" :' 18 選んでください
  395. 11350 DATA "KAKNIN" :' 19 確認して下さい
  396. 11360 DATA "NYURYO" :' 20 入力してください
  397. 11370 DATA "IRA"    :' 21 いらっしゃいませ 
  398. 11380 DATA "OYASUM" :' 22 おやすみ
  399. 11390 DATA "ARIGA3" :' 23 ありがとうございました
  400. 11400 DATA "TYOTO"  :' 24 ちょっと待って
  401. 11410 DATA "DAMEYO" :' 25 駄目よ
  402. 11420 DATA "YAMETE" :' 26 やめて
  403. 11430 DATA "TIGAU"  :' 27 ちがうよ
  404. 11440 DATA "PINPON" :' 28 ぴんぽーん
  405. 11450 DATA "BUU"    :' 29 ぶー
  406. 11460 DATA "MOUII"  :' 30 もういいよう  
  407. 11470 DATA "DEKITA" :' 31 できたよー
  408. 11480 DATA "IIDE2"  :' 32 いいですか(2)
  409. 11490 DATA "YOSI"   :' 33 よしなさい
  410. 11500 DATA "OYOSI"  :' 34 およしなさい
  411. 11510 DATA "YAMENA" :' 35 やめなさい
  412. 11520 DATA "GOMEN"  :' 36 ごめん
  413. 11530 '                                    
  414. 12000 '////////// 年月日入力 & 曜日表示
  415. 12010 '                    
  416. 12045 *週検索
  417. 12050  DATA "SUN",2,"MON",7,"TUE",7,"WED",7,"THU",7,"FRI",7,"SAT",5
  418. 12060  GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
  419. 12080  RETURN
  420. 12090 '
  421. 12450 *WEEKN :'////////// 週NO.検索    'v1.3 bugfix 93.12.27
  422. 12460  U=0    :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN   Output; WK DN
  423. 12470  IF YR/4-INT(YR/4)=0 THEN U=1
  424. 12480  DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
  425. 12490  DATA 0,31,29,31,30,31,30,31,31,30,31,30,31
  426. 12500  IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
  427. 12505 'IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
  428. 12510  MDN=0:FOR IWEKN=1 TO MN:READ DN:MDN=MDN+DN:NEXT IWEKN:'1日までの日数
  429. 12515  READ MNDN                                              :'当月の日数
  430. 12516  IF DY>MNDN THEN DY=MNDN                                :'V1.3!
  431. 12520  YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
  432. 12530  WK=(YDN#/7-INT(YDN#/7))*7
  433. 12540  RETURN
  434. 12550 '
  435. 12600 *年月日変更:                     'v1.3 bugfix 93.12.27
  436. 12601  GOSUB *WEEKN
  437. 12602  DY=DY+DDEF
  438. 12604  IF DY>MNDN THEN DY=1     :MDEF=+1
  439. 12606  IF DY<1    THEN DY=31    :MDEF=-1
  440. 12610  MN=MN+MDEF
  441. 12620  IF MN>12   THEN MN=MN-12 :YDEF=+1
  442. 12630  IF MN<1    THEN MN=12+MN :YDEF=-1
  443. 12640  YR=YR+YDEF
  444. 12650  IF YR<0    THEN YR=10000+YR
  445. 12660  IF YR>9999 THEN YR=YR-10000
  446. 12665  GOSUB *WEEKN
  447. 12668  DY$=RIGHT$(STR$(100+DY),2)
  448. 12670  MN$=RIGHT$(STR$(100+MN),2)
  449. 12680  YR$=RIGHT$(STR$(10000+YR),4)
  450. 12690  RETURN
  451. 12695 '
  452. 12700 *本日の日付
  453. 12705  DEF FONT "システム   12ドット"
  454. 12710  TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
  455. 12720  IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
  456. 12730  TY$=RIGHT$(STR$(TY),4)
  457. 12740  TM$=MID$(DATE$,4,2):TM=VAL(TM$)
  458. 12750  TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
  459. 12760  YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
  460. 12770  TYMD$=TY$+"."+TM$+"."+TD$
  461. 12780  LINE(475,5)-(560,17),PSET,0,BF
  462. 12790  SYMBOL(476,6),TYMD$,.75!,.75!,7
  463. 12800  SYMBOL(542,6),WKM$,.75!,.75!,CW
  464. 12810  RETURN
  465. 12820 '
  466. 13000 '////////////////////////////////////////////////////////////////////
  467. 13001 ' LKEYIN   v1.1a 全角文字移動改良                1993.02.12 T.Komura
  468. 13002 '--------- v1.2  挿入モードの変更他全面bugFIX    1993.08.04 T.Komura
  469. 13003 '          v2.0  グラフィックモード12dot用に改造 1994.07.30 T.Komura
  470. 13004 '          v2.1  マルチカラムに改造              1994.09.02 T.Komura
  471. 13005 '          v2.2  編集文字を初期表示するように改造1995.04.29 T.Komura
  472. 13006 '
  473. 13010 *LKEYIN  :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
  474. 13020 '   入力 = LX,LY : 表示開始座標      LG    : 行数     
  475. 13030 '          L$(ii): 初期文字列        LP    : 行ピッチ       
  476. 13040 '          LC    : 表示文字色        lb    : 非編集行文字色
  477. 13050 '          LL    : 最大文字数        cbc    : 背景色
  478. 13060 '          LINS  : 挿入モード=1  出力=L$(ii) : 入力後の文字列
  479. 13070 '         
  480. 13080  LCSRCL=6:LLINCL=4
  481. 13090  DEF FONT "システム   12ドット"
  482. 13100 '           CR   MR   ML  INS  DEL   BS  CAN
  483. 13120  CONSOLE 0,24,2
  484. 13130  CC$=CHR$(&H0D,&H1E,&H1F,&H1C,&H1D,&H12,&H7F,&H08,&H18)
  485. 13140 ' LMG$=SPACE$(LL):LMGD$=SPACE$(LL)          :'2.1
  486. 13150  LA$=INKEY$:IF LA$<>"" THEN 13150
  487. 13160  IF LINS=1 THEN CWDT=1 ELSE CWDT=5
  488. 13170  LCSR=0:LGC=1                               :'v2.1
  489. 13180  LINE(LX,LY)-(LX+LL*6+1,LY+11),PSET,%CBC,BF :'v2.2
  490. 13185  GET@A (LX,LY)-(LX+LL*6+1,LY+13),LMB#       :'v2.0
  491. 13190  FOR LGII=1 TO LG:LXX=LX:LYY=LY+(LGII-1)*LP :'v2.1・・・・ 初期文字列表示
  492. 13200   PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB#    :'v2.1
  493. 13210   SYMBOL(LXX,LYY),L$(LGII),.75!,.75!,LB     :'v2.1
  494. 13220  NEXT LGII                                  :'v2.1
  495. 13230 *SETLG             :'----------行セット     :'v2.1
  496. 13240  LYY=LY+(LGC-1)*LP :LM$=L$(LGC)             :'v2.1
  497. 13250   SYMBOL(LXX,LYY),L$(LGC),.75!,.75!,LC      :'v2.1
  498. 13260  LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.1
  499. 13270  LCSRX=LCSR:GOSUB *LCSRDX
  500. 13280  LMX$=LEFT$(LM$+SPACE$(LL),LL)
  501. 13290  GOSUB *LMREAD
  502. 13300  IF LMGB$="1" THEN GOSUB *LCSRDEC
  503. 13310 *IN1C:'                                  ・・・・・・・・・・ 1 文字入力
  504. 13320  LA$=INKEY$:IF LA$="" THEN 13320
  505. 13330  ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
  506. 13340  IF CLA=0 THEN 13360
  507. 13350  ON CLA GOTO *CR,*MU,*MD,*MR,*ML,*INS,*DEL,*BS,*CAN
  508. 13360  IF KANF=1 THEN *KANJI
  509. 13370  IF ALA<&H20 THEN BEEP:GOTO *IN1C
  510. 13380  IF ALA>=&H20 AND ALA<&H80 THEN *ANK
  511. 13390  IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
  512. 13400  GOTO *KANJI
  513. 13410 *ANK :'                                  ・・・・・・・・・・ ANK 文字入力
  514. 13420  IF LINS=1 THEN 13440
  515. 13430  MID$(LMX$,LCSR+1,1)=LA$:GOTO 13450
  516. 13440  LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
  517. 13450  GOSUB *LCSRINC
  518. 13460  GOSUB *LMREAD1:GOSUB *LMXDSP
  519. 13470  GOTO *IN1C
  520. 13480 *KANJI :'                                ・・・・・・・・・・ 漢字文字入力
  521. 13490  ON KANF+1 GOTO 13500,13530
  522. 13500  KANF=1:KANW$="":KANW$=LA$
  523. 13510    IF LCSR+1>=LL THEN KANF=0:BEEP
  524. 13520    GOSUB *LCSRD:GOTO *IN1C
  525. 13530  KANF=0:KANW$=KANW$+LA$
  526. 13540    IF LINS=1 THEN 13560
  527. 13550    MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13570
  528. 13560    LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
  529. 13570    GOSUB *LCSR2INC
  530. 13580    GOSUB *LMREAD1:GOSUB *LMXDSP
  531. 13590  GOTO *IN1C
  532. 13600 *CR :GOSUB *LMREAD:GOSUB *LCSRDX         '////////// End
  533. 13610   LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF     :'v2.0 :'v2.1
  534. 13620   CONSOLE 0,24,0
  535. 13630 RETURN:'----------------------------------------------------------
  536. 13640 *MU :GOSUB *LMREAD2                      '////////// up   :v2.1
  537. 13645 *MU2:GOSUB *LMBDSP:LGC=LGC-1:IF LGC<1 THEN LGC=1
  538. 13655      GOTO *SETLG
  539. 13660 *MD :GOSUB *LMREAD2                      '////////// down :v2.1
  540. 13665 *MD2:GOSUB *LMBDSP:LGC=LGC+1:IF LGC>LG THEN LGC=LG
  541. 13675      GOTO *SETLG
  542. 13680 *MR :GOSUB *LMREAD2                      '////////// Right
  543. 13685      IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *MUD    :'v2.1
  544. 13690                        GOSUB *LCSRINC :GOTO *MUD    :'v2.1
  545. 13695 *ML :GOSUB *LMREAD2                      '////////// Left
  546. 13700      IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *MUD    :'v2.1
  547. 13705                        GOSUB *LCSRDEC :GOTO *MUD    :'v2.1
  548. 13710 *MUD:IF LCSC=0  THEN GOTO *IN1C          '////////// line chg.ctrl:'v2.1
  549. 13715      IF LCSC=+1 THEN GOSUB *LMREAD2:LCSR=0 :GOTO *MD2
  550. 13720      IF LCSC=-1 THEN GOSUB *LMREAD2:LCSR=LL:GOTO *MU2
  551. 13725 *INS:GOSUB *LCSRDX:LINS=1-LINS           '////////// Insert
  552. 13730      IF LINS=1 THEN CWDT=1 ELSE CWDT=5
  553. 13735      GOSUB *LCSRDX                    :GOTO *IN1C
  554. 13740 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
  555. 13745      IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
  556. 13750      LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+"  "
  557. 13755      GOSUB *LMREAD:GOSUB *LMXDSP      :GOTO *IN1C
  558. 13760 *BS :GOSUB *LMREAD                       '////////// BackSpace
  559. 13765      IF LCSR=0 THEN GOTO *IN1C
  560. 13770      IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13780
  561. 13775                        GOSUB *LCSRDEC :LDEF=1:GOTO 13780
  562. 13780      LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+"  "
  563. 13785      GOSUB *LMREAD:GOSUB *LMXDSP      :GOTO *IN1C
  564. 13790 *CAN :LMX$=SPACE$(LL)                    '////////// Clear
  565. 13795      GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
  566. 13800      GOSUB *LMREAD                    :GOTO *IN1C
  567. 13805 *LMREAD:                                 '////////// Disp Char Read 
  568. 13810      LMGFX$=MID$(LMGDX$,LCSR+1,1)
  569. 13815      IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
  570. 13820 *LMREAD1:LMGD$=""
  571. 13825          FOR II=1 TO KLEN(LMX$)
  572. 13830            LMG=KTYPE(LMX$,II)
  573. 13835            IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
  574. 13840            LMGD$=LMGD$+LMD$
  575. 13845          NEXT II
  576. 13850          IF LEN(LMGD$)<=LL THEN 13860
  577. 13855          LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
  578. 13860          IF RIGHT$(LMGD$,1)<>"1" THEN 13870
  579. 13865          MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
  580. 13870 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
  581. 13875          IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
  582. 13880          LMG$=LMX$:LMGDX$=LMGD$:L$(LGC)=LMG$
  583. 13885          RETURN
  584. 13890 *LCSRD :LXC=(LX+6*LCSR ):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Disp
  585. 13895 *LCSRDX:LXC=(LX+6*LCSRX):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Erace
  586. 13900         LCSRX=LCSR:RETURN
  587. 13905 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+12),XOR,LCSRCL,BF:RETURN
  588. 13910 *LCSRINC :LCSC=0:LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1:LCSC=+1
  589. 13915           GOSUB *LCSRD:RETURN
  590. 13920 *LCSR2INC:LCSC=0:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2:LCSC=+1
  591. 13925           GOSUB *LCSRD:RETURN
  592. 13930 *LCSRDEC :LCSC=0:LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0     :LCSC=-1
  593. 13935           GOSUB *LCSRD:RETURN
  594. 13940 *LCSR2DEC:LCSC=0:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2:LCSC=-1
  595. 13945           GOSUB *LCSRD:RETURN
  596. 13950 *LMXDSP  :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB#    :'v2.0   :'v2.1
  597. 13955           LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF   :'v2.0
  598. 13960           SYMBOL(LX,LYY),LMX$,.75!,.75!,LC
  599. 13965           GOSUB *LCSRDX:RETURN
  600. 13970 *LMBDSP  :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB#    :'v2.1
  601. 13975           SYMBOL(LX,LYY),LMX$,.75!,.75!,LB:RETURN   :'v2.1
  602. 13980 '-------------------------------------------------------------------
  603. 14000 'マウス,ウインドウ関係サブルーチン集   v1.0 1995.05.14
  604. 14010 '--------------------------------------------------
  605. 14020 '
  606. 14030 'マウスカーソル形状セット   v1.0 1994.02.13
  607. 14040 *MCDSET
  608. 14050  MOUSE 2,MCAND$(MCN),MCDOT$(MCN),MC_X(MCN),MC_Y(MCN)
  609. 14060  RETURN
  610. 14070 *MCREAD
  611. 14080  RESTORE *MCDATA
  612. 14090  FOR II=1 TO 3
  613. 14100    FOR JJ=1 TO 32:MCAND$(II)="":MCDOT$(II)="":NEXT JJ
  614. 14110    READ MC_X(II),MC_Y(II)
  615. 14120    FOR JJ=1 TO 32:READ MCAND:MCAND$(II)=MCAND$(II)+CHR$(MCAND):NEXT JJ
  616. 14130    FOR JJ=1 TO 32:READ MCDOT:MCDOT$(II)=MCDOT$(II)+CHR$(MCDOT):NEXT JJ
  617. 14140  NEXT II
  618. 14150  RETURN
  619. 14160 *MCDATA
  620. 14170 '指 ////////////////////////////////////////
  621. 14171 DATA 0,0
  622. 14172 DATA &H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H83,&HFF' and
  623. 14173 DATA &HC0,&H3F,&HE0,&H07,&HF0,&H01,&HF8,&H00
  624. 14174 DATA &HF0,&H00,&HE0,&H00,&HE0,&H00,&HE0,&H00
  625. 14175 DATA &HE0,&H00,&HF0,&H00,&HF8,&H00,&HFC,&H00
  626. 14176 DATA &H00,&H00,&H60,&H00,&H30,&H00,&H18,&H00' dot
  627. 14177 DATA &H0C,&H00,&H06,&H80,&H03,&H50,&H01,&HAA
  628. 14178 DATA &H05,&HFE,&H04,&HFE,&H06,&HFE,&H07,&HFE
  629. 14179 DATA &H03,&HFF,&H01,&HFF,&H00,&H7F,&H00,&H1F
  630. 14180 'コーヒー///////////////////////////////////
  631. 14181 DATA 7,7
  632. 14182 DATA &HFF,&HFF,&HF2,&H4F,&HE4,&H9F,&HE4,&H9F' and
  633. 14183 DATA &HE6,&H1F,&HF2,&H4F,&HC0,&H07,&HC0,&H01
  634. 14184 DATA &HC0,&H06,&HC0,&H06,&HC0,&H05,&HC0,&H03
  635. 14185 DATA &HE0,&H0F,&H80,&H01,&HC0,&H03,&HE0,&H07
  636. 14186 DATA &H00,&H00,&H04,&H90,&H09,&H20,&H09,&H20' dot
  637. 14187 DATA &H08,&HA0,&H04,&H90,&H00,&H00,&H1F,&HF0
  638. 14188 DATA &H15,&HF0,&H13,&H30,&H15,&H30,&H1F,&HF0
  639. 14189 DATA &H0F,&HE0,&H00,&H00,&H1F,&HF8,&H00,&H00
  640. 14190 '待った //////////////////////////////////////
  641. 14191 DATA 7,7
  642. 14192 DATA &HF0,&H1F,&HC0,&H07,&H80,&H03,&H80,&H03' and
  643. 14193 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H00,&H01
  644. 14194 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H80,&H03
  645. 14195 DATA &H80,&H03,&HC0,&H07,&HF0,&H1F,&HFF,&HFF
  646. 14196 DATA &H00,&H00,&H00,&H00,&H07,&HC0,&H1F,&H80' dot
  647. 14197 DATA &H1F,&H00,&H3E,&H08,&H3C,&H18,&H38,&H38
  648. 14198 DATA &H30,&H78,&H20,&HF8,&H01,&HF0,&H03,&HF0
  649. 14199 DATA &H07,&HC0,&H00,&H00,&H00,&H00,&H00,&H00
  650. 14200 '
  651. 14210 *MCDRAG 'ドラッグ -----------------------------------------------
  652. 14220  MOUSE 1,X_M,Y_M,1                            :'現在位置にカーソルを設定
  653. 14225  MD_XB1=W_X1(G):MD_YB1=W_Y1(G) :MD_XC1=W_X1(G):MD_YC1=W_Y1(G) :'旧ウインドウ座標保持
  654. 14230  MD_XB2=W_X2(G):MD_YB2=W_Y2(G) :MD_XC2=W_X2(G):MD_YC2=W_Y2(G) :'旧ウインドウ座標保持
  655. 14235  GET@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SW#
  656. 14238  X1=X_M-W_X1(G)+W_XA(G):X2=X_M+W_XB(G)-W_X2(G):'最大移動域の設定
  657. 14239  Y1=Y_M-W_Y1(G)+W_YA(G):Y2=Y_M+W_YB(G)-W_Y2(G):'
  658. 14240  MOUSE 4,X1,Y1,X2,Y2                          :'最大移動域の設定
  659. 14245  GOSUB *MD_WLINED
  660. 14250  IF MOUSE(2,0)=-1 THEN 14245                  :'枠移動
  661. 14255   LINE(MD_XC1,MD_YC1)-(MD_XC2,MD_YC2),XOR,4,B,&HCCCC     :'枠線消去
  662. 14260  PUT@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SB#      :'旧ウインドウ背景表示
  663. 14265  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#  :'新ウインドウ背景保持
  664. 14270  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SW#  :'新ウインドウ描画
  665. 14275  MOUSE 4,0,0,639,479:WAIT SWAIT\4+1:RETURN
  666. 14280 *MD_WLINED
  667. 14285  MD_X_M=MOUSE(9) :MD_Y_M=MOUSE(10)                :'移動量取得
  668. 14290  W_X1(G)=W_X1(G)+(MD_X_M):W_Y1(G)=W_Y1(G)+(MD_Y_M):'新座標計算
  669. 14295  W_X2(G)=W_X2(G)+(MD_X_M):W_Y2(G)=W_Y2(G)+(MD_Y_M)
  670. 14300  LINE(MD_XC1 ,MD_YC1 )-(MD_XC2 ,MD_YC2 ),XOR,4,B,&HCCCC  :'枠線移動
  671. 14305  LINE(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),XOR,4,B,&HCCCC
  672. 14310  MD_XC1=W_X1(G):MD_YC1=W_Y1(G)
  673. 14315  MD_XC2=W_X2(G):MD_YC2=W_Y2(G)
  674. 14320  RETURN
  675. 14400 '------------------------------------------------------------------
  676. 14405 *ボタン座標読み取り
  677. 14410  RESTORE *ボタン座標:READ SWGN
  678. 14415  FOR G=1 TO SWGN
  679. 14420    READ SWN(G), W_X1(G),W_X2(G),W_Y1(G),W_Y2(G), W_XA(G),W_XB(G),W_YA(G),W_YB(G)
  680. 14425    FOR B=1 TO SWN(G):READ B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B):NEXT B
  681. 14430  NEXT G
  682. 14435  RETURN
  683. 14500 '-----------------------------------------------------------------
  684. 14505 *BTN_ONOFF:'ボタンON_OFF表示
  685. 14510  IF BST(G,B)=1 THEN BSC=15:BSB=1:GOTO 14520
  686. 14515                     BSC=1:BSB=15
  687. 14520   X1=W_X1(G)+B_X1(G,B):X2=W_X1(G)+B_X2(G,B)
  688. 14521   Y1=W_Y1(G)+B_Y1(G,B):Y2=W_Y1(G)+B_Y2(G,B)
  689. 14522   CONNECT(X1,Y2)-(X2,Y2)-(X2,Y1),%BSC,PSET
  690. 14523   CONNECT(X1,Y2)-(X1,Y1)-(X2,Y1),%BSB,PSET
  691. 14530  IF BSNDOFF=1 THEN WAIT SWAIT\10+1:GOTO 14540
  692. 14535  IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT SWAIT\5+1
  693. 14540  BSNDOFF=0:RETURN
  694. 14600 '-----------------------------------------------------------------
  695. 14610 *MCSELECT:'マウスボタン選択
  696. 14620  SWERC=0:SWNO=0:X_M=-1:Y_M=-1           :'リセット
  697. 14630 *クリック待ち
  698. 14640  IF MOUSE(2,0)=-1 THEN 14680            :'左クリック入力待ち
  699. 14650  IF MOUSE(2,1)=-1 THEN SWNO=-1:RETURN   :'右クリックで終了
  700. 14660  IF MCKEY=1 THEN GOTO 14830             :'MCKEY=1: マウススキャン中断、キー入力受付
  701. 14670  GOTO *クリック待ち
  702. 14680  X_M=MOUSE(4,0):Y_M=MOUSE(5,0)          :'座標取得
  703. 14690  FOR IMS=1 TO SWN(G)                    :'ボタン座標判定
  704. 14700    IF (X_M>W_X1(G)+B_X1(G,IMS)) AND (X_M<W_X1(G)+B_X2(G,IMS)) ELSE 14730
  705. 14710    IF (Y_M>W_Y1(G)+B_Y1(G,IMS)) AND (Y_M<W_Y1(G)+B_Y2(G,IMS)) ELSE 14730
  706. 14720    SWNO=IMS:IMS=SWN(G)+1
  707. 14730  NEXT IMS
  708. 14735  WAIT SWAIT\8+1 'FOR II=1 TO 500:NEXT II
  709. 14740  IF (SWPASS=1) OR (SWNO<>0) THEN 14830
  710. 14750  IF SWNO=0 THEN
  711. 14760     GOSUB *MCMIS:SWERC=SWERC+1           '誤指定警告表示
  712. 14770     IF SWERC>5 THEN
  713. 14780       MCN=3:GOSUB *MCDSET:MESN=12:GOSUB *SNDMSG            '誤指定警告音声案内
  714. 14790       MCN=1:GOSUB *MCDSET
  715. 14800     ENDIF
  716. 14810  ENDIF
  717. 14820  GOTO *クリック待ち
  718. 14830  SWPASS=0:SW1T=0:MCKEY=0
  719. 14840  RETURN
  720. 14850 *MCMIS
  721. 14860  MCN=3:GOSUB *MCDSET:WAIT SWAIT\3+1:MCN=1:GOSUB *MCDSET
  722. 14870  RETURN
  723. 14880 '
  724. 14890 '
  725. 15000 '
  726. 15010 '  SAVE"TCLOCK.sub"             :'   組み込み型 アナログ時計 V1.1
  727. 15020 '                                       1991.05 T.KOMURA 
  728. 15030 '--------------------------------------------------------------------
  729. 15040 '
  730. 15220 *時計表示:'///////////////////////////////////
  731. 15230  XCLK0=579:YCLK0=11:CLKR=9:PI=3.1415!
  732. 15240  TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
  733. 15250  TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
  734. 15260  TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
  735. 15270  THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
  736. 15280  GOSUB *短針表示
  737. 15290  GOSUB *長針表示
  738. 15300  GOSUB *秒針表示
  739. 15305  IF DCLOCKF=1 THEN GOSUB *DCLOCKD
  740. 15310  CLOCKINIT=1:DATX$=DATE$
  741. 15320  RETURN
  742. 15330 '
  743. 15340 *短針表示
  744. 15350  XHD1=XCLK0+(CLKR*.6!)*SIN(HRR):XHD2=XCLK0
  745. 15360  YHD1=YCLK0-(CLKR*.6!)*COS(HRR):YHD2=YCLK0
  746. 15370  IF CLOCKINIT=0 THEN 15400
  747. 15380  IF SCR<>0 THEN 15420
  748. 15390  LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
  749. 15400  LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
  750. 15410  XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
  751. 15420  RETURN
  752. 15430 *長針表示
  753. 15440  XMD1=XCLK0+(CLKR*.8!)*SIN(MNR):XMD2=XCLK0
  754. 15450  YMD1=YCLK0-(CLKR*.8!)*COS(MNR):YMD2=YCLK0
  755. 15460  IF CLOCKINIT=0 THEN 15490
  756. 15470  IF SCR<>0 THEN 15510
  757. 15480  LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
  758. 15490  LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
  759. 15500  XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
  760. 15510  RETURN
  761. 15520 *秒針表示
  762. 15530  XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
  763. 15540  YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
  764. 15550  IF CLOCKINIT=0 THEN 15570
  765. 15560  LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
  766. 15570  LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
  767. 15580  XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
  768. 15590  RETURN
  769. 15600 '////////////////////////////////////////////////////////////////////
  770. 15605 ' DIGITAL CLOCK v1.0 1995.05.24 T.Komura
  771. 15610 *DCLOCKREAD:'プログラム先頭で実施
  772. 15615  RESTORE *DCLOCKDATA
  773. 15620  FOR DGII=0 TO 9:FOR DGN=1 TO 7:READ DGP(DGII,DGN):NEXT:NEXT 
  774. 15625  FOR DGII=1 TO 9:READ DGX(DGII),DGY(DGII):NEXT
  775. 15630  FOR DGII=1 TO 4:READ DGO(DGII):NEXT
  776. 15635  RETURN
  777. 15640 *DGCLOCK:'デジタル時計 -------------------------------
  778. 15645  G=8:SWNOX=SWNO:DGINIT=0:DGFC=15:DGBC=1
  779. 15650  GOSUB *DCLOCKLOAD:GOSUB *DCLOCKD:DCLOCKF=1
  780. 15655 *DGMCSEL
  781. 15660  GOSUB *MCSELECT:'マウスボタン選択
  782. 15665  IF SWNO=0 THEN *DGMCSEL
  783. 15670  IF SWNO<0 THEN SWNO=1:'右クリックで終了
  784. 15675 '             end  drag
  785. 15680  ON SWNO GOTO *DGS01,*DGS02 
  786. 15685 *DGS02:'drag
  787. 15690  DCLOCKF=0
  788. 15692  GOSUB *MCDRAG
  789. 15694  DCLOCKF=1
  790. 15695  GOTO *DGMCSEL
  791. 15700 *DGS01:'end
  792. 15705  B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  793. 15710  DCLOCKF=0
  794. 15715  GOSUB *DCLOCKCLR
  795. 15720  SWNO=SWNOX
  796. 15725  RETURN
  797. 15730 *DCLOCKLOAD
  798. 15735  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  799. 15740  MOUSE 1,,,0
  800. 15745  LOAD@ TIFDRV$+"\dclock.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
  801. 15750  MOUSE 1,,,1:RETURN
  802. 15760 *DCLOCKCLR
  803. 15765  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  804. 15770  RETURN
  805. 15775 '
  806. 15780 *DCLOCKD
  807. 15785  IF DGINIT=1 THEN 15795
  808. 15790  FOR DGII=1 TO 4:DGM(DGII)=10:NEXT DGII:DGINIT=1
  809. 15795  DG(1)=VAL(MID$(TIME$,1,1)):DG(2)=VAL(MID$(TIME$,2,1))
  810. 15800  DG(3)=VAL(MID$(TIME$,4,1)):DG(4)=VAL(MID$(TIME$,5,1))
  811. 15805  DGPT=1-DGPT
  812. 15810  FOR DGII=1 TO 4
  813. 15815    IF DG(DGII)=DGM(DGII) THEN 15840
  814. 15820    FOR DGJJ=1 TO 7
  815. 15825      IF DGP(DG(DGII),DGJJ)=1 THEN DGC=DGFC ELSE DGC=DGBC
  816. 15826      IF DGII=1 AND DG(1)=0 THEN DGC=DGBC
  817. 15830      PAINT(W_X1(G)+DGX(DGJJ)+DGO(DGII),W_Y1(G)+DGY(DGJJ)),%DGC,0
  818. 15835    NEXT DGJJ
  819. 15840  NEXT DGII
  820. 15841      IF DGPT=1 THEN DGC=10 ELSE DGC=DGBC
  821. 15842      PAINT(W_X1(G)+DGX(8),W_Y1(G)+DGY(8)),%DGC,0
  822. 15843      PAINT(W_X1(G)+DGX(9),W_Y1(G)+DGY(9)),%DGC,0
  823. 15845  FOR DGII=1 TO 4:DGM(DGII)=DG(DGII):NEXT DGII'
  824. 15850  RETURN
  825. 15855 '
  826. 16000 '-------------------------------------------------------------------
  827. 16005 *HKCALC' 16000-
  828. 16010 '  SAVE"hkcalc.sub"             :'   組み込み型 家計簿電卓 V1.1
  829. 16015 '  1993.09 T.KOMURA 
  830. 16020 '  1994.06 T.KOMURA 消費税計算追加                         v1.2
  831. 16021 '  1995.05 T.KOMURA ウインドウドラッグ対応                 v1.2
  832. 16025 '--------------------------------------------------------------------
  833. 16030  CALCCN$="0123456789"  :G=4
  834. 16035  CALCCC$=CHR$(&H0D,&H2E,&H3D,&H2A,&H2F,&H2B,&H2D,&H1B,&H08,&H18,&H09)
  835. 16040 '               CR   .    =    *    /    +    -   ESC   BS  CAN  TAB
  836. 16045  CALCC$=CALCCN$+CALCCC$
  837. 16050  GOSUB *電卓枠表示
  838. 16055  CALCD=0:CALP=0:CALI$="0":CALTAXF=0:ENDF=1 :'v1.2
  839. 16060  IF SSUB=0 THEN CALN#=VAL(DYN$(IPNO)) ELSE CALN#=VAL(SDYN$(SPNO))
  840. 16065  CALR#=CALN#:CALRX#=CALR#
  841. 16070  CALD$=RIGHT$(SPACE$(12)+STR$(CALN#),12)
  842. 16075  CALDF=0:GOSUB *電卓数値表示
  843. 16080  A$=INKEY$:IF A$<>"" THEN 16080
  844. 16085 *CALCMAIN'///////////////////////////
  845. 16090  GOSUB *CALCIN
  846. 16092  IF SWNO<0 THEN SWNO=11+8
  847. 16095  IF (CALE=1) AND (SWNO<>21)     THEN *CALCMAIN
  848. 16100  IF SWNO=23 THEN GOSUB *MCDRAG :GOTO *CALCMAIN
  849. 16102  G=4:B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
  850. 16105  IF SWNO<11 THEN GOTO *数値入力
  851. 16110  IF SWNO=11 THEN GOTO *千入力
  852. 16115  ON SWNO-11 GOTO *CA1,*CA2,*CA3,*CA4,*CA5,*CA6,*CA7,*CA8,*CA9,*CA10,*CA11
  853. 16120 '                 CR   .    =    *    /    +    -    ESC  BS   CAN   tax:'v1.2
  854. 16125 *CA1 : GOSUB *CALCEXE                 :'---------------------[CR ]
  855. 16130        IF CALE=1 THEN GOTO *CALCMAIN
  856. 16135        CALDF=2:GOSUB *電卓数値表示
  857. 16140        CALN#=0:CALI$="0":CALP=0
  858. 16145        CALM$="OK":GOSUB *電卓記号表示
  859. 16150        CALRX#=CALR#:ENDF=0:GOTO *CA8
  860. 16155 *CA2 : IF CALP=1 THEN 16170           :'---------------------[ . ]
  861. 16160        CALI$=RIGHT$(SPACE$(12)+CALI$+".",12)
  862. 16165        CALP=1:CALDF=1:GOSUB *電卓数値表示
  863. 16170        G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
  864. 16175        GOTO *CALCMAIN
  865. 16180 *CA3   GOSUB *CALCEXE:CALCD=5         :'---------------------[ = ]
  866. 16185        IF CALE=1 THEN GOTO *CALCMAIN
  867. 16190        CALDF=2:GOSUB *電卓数値表示
  868. 16195        CALN#=0:CALI$="0":CALP=0:PLAY "V8O7L8EC"
  869. 16200        CALM$="▼":GOSUB *電卓記号表示 :GOTO *CALCMAIN
  870. 16205 *CA4 : GOSUB *CALCEXE:CALCD=1         :'---------------------[ * ]
  871. 16210        CALM$="×":GOSUB *電卓記号表示 :GOTO *CALCMAIN
  872. 16215 *CA5 : GOSUB *CALCEXE:CALCD=2         :'---------------------[ / ]
  873. 16220        CALM$="÷":GOSUB *電卓記号表示 :GOTO *CALCMAIN
  874. 16225 *CA6 : GOSUB *CALCEXE:CALCD=3         :'---------------------[ + ]
  875. 16230        CALM$="+":GOSUB *電卓記号表示 :GOTO *CALCMAIN
  876. 16235 *CA7 : GOSUB *CALCEXE:CALCD=4         :'---------------------[ - ]
  877. 16240        CALM$="-":GOSUB *電卓記号表示 :GOTO *CALCMAIN
  878. 16245 *CA8 : GOSUB *電卓枠消去              :'---------------------[ESC]
  879. 16250        RETURN
  880. 16255 *CA9 : CALN#=0:CALD$="0":CALI$="0":CALP=0:CALTAXF=0:'--------[BS ]:'v1.2
  881. 16260        CALDF=1:GOSUB *電卓数値表示
  882. 16265        CALM$="△":GOSUB *電卓記号表示
  883. 16270        G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
  884. 16275        GOTO *CALCMAIN
  885. 16280 *CA10: CALCD=0:CALP=0:CALE=0:CALTAXF=0:'---------------------[CAN]:'v1.2
  886. 16285        CALN#=0:CALR#=0:CALD$="0":CALI$="0"
  887. 16290        CALDF=1:GOSUB *電卓数値表示
  888. 16295        CALM$="▽":GOSUB *電卓記号表示
  889. 16300        G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
  890. 16305        GOTO *CALCMAIN
  891. 16310 *CA11: IF CALCD=1 THEN 16320 ELSE G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:'v1.2
  892. 16315        GOSUB *BTN_ONOFF:GOTO *CALCMAIN
  893. 16320        CALI$=RIGHT$(SPACE$(10)+TAXR$,10):CALTAXF=1
  894. 16325        CALM$="税":GOSUB *電卓記号表示: CALP=1:GOTO 16350
  895. 16330 *千入力
  896. 16335   CALI$=RIGHT$(SPACE$(10)+CALI$+"000",10):GOTO 16350
  897. 16340 *数値入力
  898. 16345   CALI$=RIGHT$(SPACE$(10)+CALI$+RIGHT$(STR$(SWNO-1),1),10)
  899. 16350   IF CALP=1 THEN 16365
  900. 16355   CALN#=VAL(RIGHT$(CALI$,10))
  901. 16360   IF ABS(CALN#)>=0 THEN CALI$=RIGHT$(SPACE$(10)+STR$(CALN#),10)
  902. 16365   CALDF=1:GOSUB *電卓数値表示
  903. 16370   IF CALCD=5 THEN CALR#=0:CALCD=0
  904. 16375   G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
  905. 16380   GOTO *CALCMAIN
  906. 16385 *CALCEXE
  907. 16390   IF CALP=1 THEN CALN#=VAL(CALI$)
  908. 16395   ON CALCD+1 GOSUB *CAL0,*CAL1,*CAL2,*CAL3,*CAL4,*CAL0
  909. 16400   IF CALE=1 THEN 16440
  910. 16405   IF CALCD>0 AND CALCD<5 THEN 16420
  911. 16410   IF CALCD=0 THEN CALR#=CALN#
  912. 16415      CALN#=0:GOTO 16435
  913. 16420   CALK#=CALR#:GOSUB *電卓数値チェック
  914. 16425   IF CALE=1 THEN 16440 ELSE CALR#=CALK#
  915. 16430   CALDF=2:GOSUB *電卓数値表示
  916. 16435   CALI$="0":CALP=0
  917. 16440   G=4:B=SWNO:BST(G,B)=0:BSNDOFF=1:GOSUB *BTN_ONOFF
  918. 16445   RETURN
  919. 16450  *CAL0:                  RETURN
  920. 16455  *CAL1:CALR#=CALR#*CALN#:RETURN
  921. 16460  *CAL2:IF CALN#=0 THEN GOSUB *CALERR2:RETURN
  922. 16465        CALR#=CALR#/CALN#:RETURN
  923. 16470  *CAL3:CALR#=CALR#+CALN#:RETURN
  924. 16475  *CAL4:CALR#=CALR#-CALN#:RETURN
  925. 16480 *CALCIN
  926. 16485   G=4:SWPASS=1:MCKEY=1:GOSUB *MCSELECT'ボタン選択:'sw1tをmckeyに変更
  927. 16490   IF SWNO<>0 THEN GOTO 16515
  928. 16495   A$=INKEY$:IF A$="" THEN *CALCIN
  929. 16500   A=INSTR(CALCC$,A$)
  930. 16505   IF A=0 THEN *CALCIN
  931. 16510   IF A>10 THEN SWNO=A+1 ELSE SWNO=A
  932. 16515   PLAY "@21v2o5l64a@30":RETURN
  933. 16520 *電卓枠表示
  934. 16522   MOUSE 1,,,0
  935. 16525   GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  936. 16526   LOAD@ TIFDRV$+"\hk2calc.TIF",(W_X1(G),W_Y1(G))
  937. 16535   MOUSE 1,,,1
  938. 16540   CALMES$=CFI$(IPNO)+":金額記入":SYMBOL(W_X1(G)+10,W_Y1(G)+20),CALMES$,.75!,.75!,1
  939. 16545   CALM$="▽":GOSUB *電卓記号表示
  940. 16550   RETURN
  941. 16555 *電卓数値表示
  942. 16560   LINE(W_X1(G)+10,W_Y1(G)+36)-(W_X1(G)+132,W_Y1(G)+50),PSET,0,BF
  943. 16565   IF CALDF=0 THEN CALD$=CALD$
  944. 16570   IF CALDF=1 THEN CALD$=CALI$
  945. 16575   IF CALDF=2 THEN CALD$=RIGHT$(SPACE$(11)+STR$(CALR#),11)
  946. 16580   CALD$=RIGHT$(SPACE$(12)+CALD$,12)
  947. 16585   SYMBOL(W_X1(G)+10,W_Y1(G)+36),CALD$,1.2!,.75!,4
  948. 16590   RETURN
  949. 16595 *電卓枠消去
  950. 16600   PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  951. 16610   RETURN
  952. 16615 *電卓記号表示
  953. 16620   LINE(W_X1(G)+109,W_Y1(G)+20)-(W_X1(G)+128,W_Y1(G)+35),PSET,0,BF
  954. 16625   SYMBOL(W_X1(G)+109,W_Y1(G)+20),CALM$,.75!,.75!,5
  955. 16630   RETURN
  956. 16635 *電卓数値チェック:CALE=0
  957. 16640  IF ABS(CALK#)>9999999999# THEN GOTO *CALERR1
  958. 16645  IF LEN(STR$(CALK#))<=10 THEN 16690
  959. 16650  CALKA#=INT(CALK#):CALKB#=CALK#-INT(CALK#)
  960. 16655  IF CALKB#=0 THEN 16690
  961. 16660  CALKB#=CALKB#*10000:CALKB#=CINT(CALKB#)/10000
  962. 16665  IF CALTAXF=0 THEN 16680 ELSE CALTAXF=0            :'v1.2
  963. 16670  IF CALKB#<=.4999! THEN CALKB#=0:GOTO 16680        :'v1.2
  964. 16675                         CALKB#=0:CALKA#=CALKA#+1   :'v1.2
  965. 16680  CALK#=CALKA#+CALKB#:CALK$=STR$(CALK#)
  966. 16685  IF LEN(CALK$)>11 THEN CALK#=VAL(LEFT$(CALK$,11))
  967. 16690  RETURN
  968. 16695 *CALERR1:CALED$="ERROR     Over Flow":GOTO *CALED
  969. 16700 *CALERR2:CALED$="ERROR Devision by 0":GOTO *CALED
  970. 16705 *CALED :PLAY "V8O7L16DDD" :CALE=1
  971. 16710  LINE(W_X1(G)+10,W_Y1(G)+36)-(W_X1(G)+132,W_Y1(G)+50),PSET,0,BF
  972. 16715  SYMBOL(W_X1(G)+10,W_Y1(G)+36),CALED$,.75!,.75!,2
  973. 16720  CALM$="..":GOSUB *電卓記号表示
  974. 16725  RETURN
  975. 16730 '
  976. 18000 '------------------------------------------------------------------
  977. 18005 *HKHELP:'             Copyrigit(C) T.Komura / HK2               /
  978. 18010 '   Version 1.0  1994.07.30                 / helpプログラム    /
  979. 18011 '   Version 2.0  1995.07.30 HK2ドラッグ対応
  980. 18015 'メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  981. 18016 G=7:SWNOX=SWNO:DOCDC=6:DOCBC=8
  982. 18020 GOSUB *DOCTIFDSP:GOSUB *DOCFREAD
  983. 18026 MCN=1:GOSUB *MCDSET
  984. 18030 GOSUB *DOC初期表示
  985. 18035 *DC_MSINSEL
  986. 18040 SWPASS=1:G=7:GOSUB *MCSELECT:'マウスボタン選択
  987. 18042 IF SWNO=0 THEN GOSUB *DC_他エリア判定
  988. 18043 IF SWNO<0 THEN SWNO=5
  989. 18045 IF SWNO>7 OR SWNO=0 THEN *DC_MSINSEL
  990. 18050 IF SWNO=5 THEN GOTO *SDC_05
  991. 18055 IF SWNO=6 THEN GOTO *SDC_06
  992. 18060 IF SWNO=7 THEN GOTO *SDC_07
  993. 18065                GOTO *DOCCTRL
  994. 18070 *DOCCTRL
  995. 18075  G=7:B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
  996. 18080   DCCD=SWNO:GOSUB *DOC表示制御
  997. 18085  G=7:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  998. 18090  GOTO *DC_MSINSEL
  999. 18095 *SDC_06:       GOSUB *MCDRAG     :GOTO *DC_MSINSEL
  1000. 18100 *SDC_07:DCCD=5:GOSUB *DOC表示制御:GOTO *DC_MSINSEL
  1001. 18105 *SDC_05:'終了
  1002. 18110  G=7:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1003. 18115  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1004. 18120  DOCCS=0:SWNO=SWNOX
  1005. 18122  RETURN:'///////////////////////////////////////////////////
  1006. 18125 '
  1007. 18130 'sub routine---------------------------------------------
  1008. 18135 *DOCTIFDSP
  1009. 18137  MOUSE 1,,,0
  1010. 18140  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1011. 18145  LOAD@ TIFDRV$+"\hk2help.tif",(W_X1(G),W_Y1(G))
  1012. 18165  MOUSE 1,,,1:GOSUB *DOC名称表示
  1013. 18170  RETURN
  1014. 18175 *DOCFREAD:'helpファイル読み込み
  1015. 18177  MCN=2:GOSUB *MCDSET
  1016. 18180  DOCN=0:OPEN "I",#1,PRGDRV$+"\HELPF"+DOCF$
  1017. 18185  IF EOF(1)=-1 THEN 18200
  1018. 18190  DOCN=DOCN+1:LINE INPUT #1,DOC$(DOCN)
  1019. 18195  GOTO 18185
  1020. 18200  CLOSE #1:RETURN
  1021. 18205 *DOC指定行表示
  1022. 18210  GOSUB *DOCカーソル表示
  1023. 18220  FOR DN=SDN TO EDN
  1024. 18225    XDC=W_X1(G)+8:YDC=W_Y1(G)+27+DCL*12
  1025. 18230    SYMBOL(XDC,YDC),DOC$(DN),.75!,.75!,7
  1026. 18235    DCL=DCL+1
  1027. 18240  NEXT DN:RETURN
  1028. 18245 *DOC初期表示
  1029. 18250  SDN=1:EDN=24:DCL=0:DSP=1:GOSUB *DOC指定行表示
  1030. 18255  RETURN
  1031. 18260 *DOC表示制御:'///////////////////////////////////////
  1032. 18265  ON DCCD GOTO *DCC3,*DCC1,*DCC2,*DCC4,*DCC5
  1033. 18270 *DCC1:'------ 前行
  1034. 18275  DSP=DSP-1 :IF DSP<1 THEN DSP=1          :RETURN
  1035. 18280  SDN=DSP   :GOSUB *DOC下シフト
  1036. 18285  EDN=SDN   :DCL=0 :GOSUB *DOC指定行表示  :RETURN
  1037. 18290 *DCC2:'------ 次行
  1038. 18295  DSP=DSP+1 :IF DSP+23>DOCN THEN DSP=DSP-1:RETURN
  1039. 18300  SDN=DSP+23: GOSUB *DOC上シフト
  1040. 18305  EDN=SDN   :DCL=23:GOSUB *DOC指定行表示  :RETURN
  1041. 18310 *DCC3:'------ 前頁
  1042. 18315  DSP=DSP-24:IF DSP<1 THEN DSP=1
  1043. 18320  GOTO *DCC51
  1044. 18325 *DCC4:'------ 次頁
  1045. 18330  DSP=DSP+24:IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
  1046. 18335  GOTO *DCC51
  1047. 18340 *DCC5:'------ カーソル指定
  1048. 18345  DSP=((INT(DOCN*DOCR))\24)*24+1
  1049. 18350  IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
  1050. 18355 *DCC51
  1051. 18360  SDN=DSP   :EDN=SDN+23
  1052. 18365  IF EDN>DOCN THEN EDN=EDN-1:GOTO 18365
  1053. 18370  LINE (W_X1(G)+6,W_Y1(G)+27)-(W_X1(G)+492,W_Y1(G)+27+12*24),PSET,%DOCBC,BF
  1054. 18375  DCL=0:GOSUB *DOC指定行表示              :RETURN
  1055. 18380 '------------------------------------------------------
  1056. 18385 *DOC上シフト
  1057. 18386  X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
  1058. 18390  GET@A(X1,Y1+12*1 )-(X2,Y2+12*24),HLPC#
  1059. 18395  LINE (X1,Y1+12*23)-(X2,Y2+12*24),PSET,%DOCBC,BF
  1060. 18400  PUT@A(X1,Y1      )-(X2,Y2+12*23),HLPC#
  1061. 18405  RETURN
  1062. 18410 *DOC下シフト
  1063. 18411  X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
  1064. 18415  GET@A(X1,Y1     )-(X2,Y2+12*23),HLPC#
  1065. 18420  LINE (X1,Y1     )-(X2,Y2+12*1 ),PSET,%DOCBC,BF
  1066. 18425  PUT@A(X1,Y1+12*1)-(X2,Y2+12*24),HLPC#
  1067. 18430  RETURN
  1068. 18435 *DOCカーソル表示
  1069. 18440  XDC1 =W_X1(G)+500:XDC2=W_X1(G)+511
  1070. 18445  YDC1 =W_Y1(G)+53+INT(233*((DSP-1)  /DOCN))
  1071. 18450  YDC2 =W_Y1(G)+53+INT(233*((DSP+23) /DOCN))
  1072. 18451  A=W_Y1(G)+B_Y1(G,3):IF YDC2>=A  THEN YDC2=A-1
  1073. 18455  YDC1X=W_Y1(G)+53+INT(233*((DSPX-1) /DOCN))
  1074. 18460  YDC2X=W_Y1(G)+53+INT(233*((DSPX+23)/DOCN))
  1075. 18461  A=W_Y1(G)+B_Y1(G,3):IF YDC2X>=A THEN YDC2X=A-1
  1076. 18465  IF DOCCS=1 THEN 18470 ELSE DOCCS=1:GOTO 18475
  1077. 18470  LINE(XDC1,YDC1X)-(XDC2,YDC2X),XOR,5,BF
  1078. 18475  LINE(XDC1,YDC1 )-(XDC2,YDC2 ),XOR,5,BF
  1079. 18480  DSPX=DSP :RETURN
  1080. 18485 *DOC名称表示
  1081. 18490  XDC=W_X1(G)+427:YDC=W_Y1(G)+7
  1082. 18495  DOCD$=RIGHT$(DOCF$,LEN(DOCF$)-1)
  1083. 18500  SYMBOL(XDC,YDC),DOCD$,.75!,.75!,%DOCDC
  1084. 18505  RETURN
  1085. 18810 *DC_他エリア判定
  1086. 18830  IF (X_M>(W_X1(G)+499) AND X_M<(W_X1(G)+512)) ELSE 18845
  1087. 18835  IF (Y_M>(W_Y1(G)+ 53) AND Y_M<(W_Y1(G)+288)) ELSE 18845
  1088. 18840  DOCR=(Y_M-(W_Y1(G)+53))/235:SWNO=7
  1089. 18845  RETURN
  1090. 18850 '
  1091. 19000 '
  1092. 19010 '//////////////////////////////////////////////////////////////
  1093. 19020 *ERROR:'      エラー処理サブルーチン V1.10   1990.11.08 T.Komura
  1094. 19030 '             
  1095. 19040 '
  1096. 19050 IF ERR=53 THEN *IOERR
  1097. 19060 IF ERR=63 THEN *FILNOF
  1098. 19070 IF ERR=67 THEN *DSKFUL
  1099. 19080 IF ERR=71 THEN *DSKUNF 
  1100. 19090 IF ERR=72 THEN *DSKOFF
  1101. 19100 IF ERR=73 THEN *DSKWP
  1102. 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
  1103. 19120 GOSUB *ERMSG
  1104. 19130 STOP
  1105. 19140 '////////// エラー処理
  1106. 19150 *IOERR
  1107. 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
  1108. 19170 GOSUB *ERMSG:RESUME
  1109. 19180 *DSKFUL
  1110. 19190 ERMES$="ディスクが満杯です。 交換後、"
  1111. 19200 GOSUB *ERMSG:RESUME
  1112. 19210 *DSKUNF
  1113. 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
  1114. 19230 GOSUB *ERMSG:RESUME
  1115. 19240 *DSKOFF
  1116. 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
  1117. 19260 GOSUB *ERMSG:RESUME
  1118. 19270 *DSKWP
  1119. 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
  1120. 19290 GOSUB *ERMSG:RESUME
  1121. 19300 *FILNOF
  1122. 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
  1123. 19320 GOSUB *ERMSG:RESUME
  1124. 19330 '
  1125. 19340 *ERMSG:'////////// エラーメッセージ
  1126. 19355 LINE(0,465)-(639,479),PSET,0,BF
  1127. 19360 SYMBOL(0,465),ERMES$+"[実行]キーを押してね!",.75!,.75!,2
  1128. 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
  1129. 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
  1130. 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
  1131. 19400 LINE(0,465)-(639,479),PSET,0,BF
  1132. 19410 SYMBOL(0,465),"エラー処理を終わります。",.75!,.75!,6
  1133. 19420 RETURN
  1134. 19430 '
  1135. 19440 '
  1136. 19450 '
  1137. 20000 '------------------------------------------------------------------
  1138. 20010 ' CUSTOM SUB ROUTINE FOR "DOQSO.BAS"
  1139. 20020 '------------------------------------------------------------------
  1140. 20100 *表紙表示
  1141. 20101  SCREEN 1,0,2
  1142. 20102  DEF FONT "システム   12ドット" 
  1143. 20105  LOAD@ TIFDRV$+"\HK2INx.TIF",(0,0)
  1144. 20106  MESN=1:GOSUB *MESDSP
  1145. 20107  LINE(125,6)-(343,21),PSET,%5,BF
  1146. 20108  LINE(125,22)-(343,22),PSET,%1
  1147. 20109  COLOR 7,0,0,0:SYMBOL(130,7),"Lite",.75!,.75!,7,,,&H01+&H04
  1148. 20110  FOR II=1 TO 15
  1149. 20115    X=68:Y=144+16*(II-1):IF II>3 THEN Y=Y+24
  1150. 20116    SYMBOL(X,Y),CFI$(II),.75!,.75!,%1,,,,4
  1151. 20125  NEXT II
  1152. 20145  'INTERVAL ON
  1153. 20160  RETURN
  1154. 20190 '
  1155. 20200 *検索ジャンプチェック
  1156. 20205  GOSUB *DTCHK
  1157. 20210  IF SRCJ=0 THEN RETURN
  1158. 20215  GOSUB *DTLOAD
  1159. 20220  YR$=LEFT$(DT$,4) :YR=VAL(YR$)
  1160. 20222  MN$=MID$(DT$,6,2):MN=VAL(MN$)
  1161. 20224  DY$=RIGHT$(DT$,2):DY=VAL(DY$)
  1162. 20230  SRCJ=1:RETURN
  1163. 20290 '
  1164. 20300 *日付表示
  1165. 20310  YR$=RIGHT$(STR$(YR),4)
  1166. 20315  NBN=4:NBA$=YR$:GOSUB *数字漢字変換:KYR$=NBK$
  1167. 20320  MN$=RIGHT$(STR$(100+MN),2)
  1168. 20325  NBN=2:NBA$=MN$:GOSUB *数字漢字変換:KMN$=NBK$
  1169. 20330  DY$=RIGHT$(STR$(100+DY),2)
  1170. 20335  NBN=2:NBA$=DY$:GOSUB *数字漢字変換:KDY$=NBK$
  1171. 20340  GOSUB *週検索:IF CW=7 THEN CW=6
  1172. 20350  DEF FONT "システム 16ドット"
  1173. 20352  LINE( 61,29)-(122,48),PSET,%8,BF:SYMBOL(61,31),KYR$,1,1,7,,,1
  1174. 20354  LINE(143,29)-(174,48),PSET,%8,BF:SYMBOL(143,31),KMN$,1,1,7,,,1
  1175. 20356  LINE(195,29)-(254,48),PSET,%8,BF:SYMBOL(195,31),KDY$,1,1,7,,,1
  1176. 20358                                   SYMBOL(228,32),WKM$,1,1,CW
  1177. 20360  DEF FONT "システム   12ドット"
  1178. 20370  IYM$=YR$+MN$
  1179. 20372  IF YMX<>YR+MN THEN GOSUB *カレンダー表示
  1180. 20374  GOSUB *日カーソル表示
  1181. 20376  GOSUB *行事表示
  1182. 20378  YMX=YR+MN
  1183. 20380  RETURN
  1184. 20390 '
  1185. 20400 *指定日データ表示 :'V2.0L10i
  1186. 20410  GOSUB *HKISRC
  1187. 20420  IF FIDX=1 THEN 20450
  1188. 20430  REDSPF=0:GOSUB *新規ファイル作成
  1189. 20440  GOTO 20410
  1190. 20450  GOSUB *データ表示
  1191. 20480  RETURN
  1192. 20490  '
  1193. 20495  '
  1194. 20500 *データ表示
  1195. 20505  MCN=2:GOSUB *MCDSET
  1196. 20510  RDY=DY:GOSUB *HKDGET
  1197. 20515  GOSUB *HKTFGET
  1198. 20520  LINE(128,86)-(516,117),PSET,%8,BF
  1199. 20522  SYMBOL(128,86   ), LEFT$(DEV$,64),.75!,.75!,7
  1200. 20523  SYMBOL(128,86+16),RIGHT$(DEV$,64),.75!,.75!,7
  1201. 20525 *データ表示2
  1202. 20530   FOR II=1 TO 15
  1203. 20531     YY=142+16*(II-1):IF II>3 THEN YY=YY+24
  1204. 20532     LINE(130,YY)-(197,YY+14),PSET,%6,BF
  1205. 20533     LINE(202,YY)-(517,YY+14),PSET,%6,BF
  1206. 20534     SYMBOL(130,YY+2),DYN$(II),.75!,.75!,0
  1207. 20535     SYMBOL(202,YY+2),DRM$(II),.75!,.75!,0
  1208. 20536   NEXT II
  1209. 20540   IF MID$(IMAK$,DY,1)<>" " THEN 20550
  1210. 20545   LINE(513,29)-(519,30),PSET,0,BF:GOTO *合計表示
  1211. 20550   LINE(513,29)-(519,30),PSET,4,BF:GOTO *合計表示
  1212. 20555  *合計表示
  1213. 20560   LINE(452,127)-(518,138),PSET,%6,BF:SYMBOL(464,127),DIYN$,.75!,.75!,%9
  1214. 20561   LINE(452,199)-(518,210),PSET,%6,BF:SYMBOL(464,199),DOYN$,.75!,.75!,%10
  1215. 20562   LINE(452,415)-(518,426),PSET,%6,BF:SYMBOL(464,415),DION$,.75!,.75!,%0
  1216. 20563   LINE(452,434)-(518,445),PSET,%8,BF:SYMBOL(452,434),TTR$,.75!,.75!,%15
  1217. 20580  RETURN
  1218. 20590 '
  1219. 20700 *新規ファイル作成
  1220. 20710  ' FOR II=5 TO 22:LOCATE 12,II:PRINT SPACE$(66):NEXT II ' v2.0 cut
  1221. 20720  IF (YR*12+MN)=(YRM*12+MNM+1) THEN 20750:'----次月チェック
  1222. 20730  MESN=7:GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
  1223. 20740  WAIT SWAIT\1+1:GOSUB *新規ファイル作成案内
  1224. 20745  IF REDSPF=1 THEN RETURN
  1225. 20750  MESN=3:GOSUB *MESDSP:'-----------------------確認
  1226. 20760  CMES$="["+YR$+"年"+MN$+"月]ファイル新規作成"
  1227. 20770  GOSUB *確認
  1228. 20780  ON CAUNO GOTO 20800,20790
  1229. 20790  YDEF=0:MDEF=-1:DDEF=0:GOSUB *年月日変更:GOSUB *日付表示
  1230. 20795  REDSPF=1:RETURN
  1231. 20800  MESN=5:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
  1232. 20810  IYM$=YR$+MN$:IMAK$=SPACE$(32):'--------------IDX追加
  1233. 20820  RI=IR+1:GOSUB *HKIPUT
  1234. 20830  DEV$=SPACE$(128)             :'------------ファイル作成
  1235. 20835  FOR JJ=1 TO 16:DYN$(JJ)=SPACE$(10):DRM$(JJ)=SPACE$(52):NEXT JJ
  1236. 20836  PCCD=1:PCMES$=CMES$:GOSUB *PROCD
  1237. 20840  FOR RDY=1 TO 31
  1238. 20842    LINE(70*8,465)-(639,479),PSET,0,BF
  1239. 20845    SYMBOL(70*8,465),RIGHT$(STR$(RDY),2)+" / 31",.75!,.75!,4
  1240. 20850    GOSUB *HKDPUT
  1241. 20855    PCCD=3:PCCUR=RDY:PCMAX=31:PCINT=1:GOSUB *PROCD
  1242. 20860  NEXT RDY:MESN=14:GOSUB *SNDMSG
  1243. 20865  PCCD=2:GOSUB *PROCD
  1244. 20870  RETURN
  1245. 20880 '
  1246. 20900 *新規ファイル作成案内
  1247. 20910  MESN=22:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
  1248. 20920  MYM=YR*12+MN
  1249. 20930  IF REDSPF=1 THEN 20950
  1250. 20935  IF MYM=(YRM*12+MNM+1) THEN 20990
  1251. 20940  IF MYM>(YRM*12+MNM+1) THEN MDEF=-1:YDEF=0         :GOTO 20960
  1252. 20950  IF MYM<(SSYR*12+SSMN) THEN MDEF=+1:YDEF=0:REDSPF=1:GOTO 20960
  1253. 20955  RETURN
  1254. 20960  DDEF=0:GOSUB *年月日変更:PLAY "o6v8E8"
  1255. 20970  DY=1:GOSUB *日付表示
  1256. 20980  GOTO 20920
  1257. 20990  RETURN
  1258. 20995 '
  1259. 21000 *出来事入力
  1260. 21010  MESN=10:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  1261. 21020  LX=128:LY=86:LC=6:LB=7:CBC=8:LL=64:LG=2:LP=16:LINS=1
  1262. 21040  L$(1)=LEFT$(DEV$,64):L$(2)=RIGHT$(DEV$,64):GOSUB *LKEYIN
  1263. 21050  DEV$=L$(1)+L$(2)
  1264. 21060  SYMBOL(LX,LY   ), LEFT$(DEV$,64),.75!,.75!,7
  1265. 21065  SYMBOL(LX,LY+LP),RIGHT$(DEV$,64),.75!,.75!,7
  1266. 21070  RETURN
  1267. 21080 '
  1268. 21100 *金額入力
  1269. 21110  LX=130:LY=144+16*(IPNO-1):CBC=6:IF IPNO>3 THEN LY=LY+24
  1270. 21120  IF CALCF=0 THEN 21135 
  1271. 21122                 LINE(124,LY-2)-(198,LY+12),XOR,%6,BF
  1272. 21124  GOSUB *HKCALC :LINE(124,LY-2)-(198,LY+12),XOR,%6,BF
  1273. 21126  IF ENDF=1 THEN 21135
  1274. 21130  DYN$=STR$(CALRX#)               :GOTO 21152
  1275. 21135  LC=1:LB=7:CBC=6:LL=10:LG=1:LP=1:LINS=0
  1276. 21140  L$(1)=DYN$(IPNO):GOSUB *LKEYIN
  1277. 21150  DYN$=L$(1)
  1278. 21152  IF VAL(DYN$)=0 THEN DYN$=SPACE$(10):GOTO 21162  :'v2.0L10h
  1279. 21155  DYN$(IPNO)=RIGHT$(SPACE$(10)+STR$(VAL(DYN$)),10)
  1280. 21162  LINE(LX,LY)-(LX+6*10,LY+11),PSET,%CBC,BF
  1281. 21165  SYMBOL(LX,LY),DYN$(IPNO),.75!,.75!,0
  1282. 21168  GOSUB *HKDCAL:GOSUB *累計額計算
  1283. 21170  GOSUB *合計表示
  1284. 21172  RETURN
  1285. 21174 '
  1286. 21175 *内容入力
  1287. 21180  LX=202:LY=144+16*(IPNO-1):CBC=6:IF IPNO>3 THEN LY=LY+24
  1288. 21185  IF DICIF=0 THEN 21220
  1289. 21190                  LINE(200,LY-2)-(518,LY+12),XOR,%6,BF
  1290. 21192  GOSUB *辞書入力:LINE(200,LY-2)-(518,LY+12),XOR,%6,BF
  1291. 21195  IF ENDF=1 THEN 21220
  1292. 21200  IF ENDF=0 THEN 21320
  1293. 21220  LX=202:LY=144+16*(IPNO-1):IF IPNO>3 THEN LY=LY+24
  1294. 21222  MESN=12:GOSUB *MESDSP
  1295. 21225  LC=1:LB=7:CBC=6:LL=52:LG=1:LP=1:LINS=1
  1296. 21240  L$(1)=DRM$(IPNO):GOSUB *LKEYIN
  1297. 21250  DRM$(IPNO)=LMG$
  1298. 21260  SYMBOL(LX,LY),DRM$(IPNO),.75!,.75!,0
  1299. 21320  RETURN
  1300. 21330 '
  1301. 22000 '//////////////////////////////////////////////////////
  1302. 22005 '定額支出編集     v1.4
  1303. 22010 '                 v1.5 1995.05 ドラッグ対応
  1304. 22015 *定額支出編集
  1305. 22020  G=5:SWNOCO=SWNO:COMODE=1
  1306. 22025  GOSUB *定額編集枠表示
  1307. 22030  GOSUB *HKCFGET
  1308. 22035  GOSUB *定額支出表示
  1309. 22040 *COSEL
  1310. 22045  IF MESOF=1 THEN MESOF=0:GOTO 22055
  1311. 22050  MESN=24:GOSUB *MESDSP:MESN=18:GOSUB *SNDMSG
  1312. 22055  G=5:GOSUB *MCSELECT'ボタン選択:'       swpass=1 cut
  1313. 22056  IF SWNO<0 THEN SWNO=42
  1314. 22057  IF SWNO=43 THEN GOSUB *MCDRAG:GOTO 22055
  1315. 22060  IF SWNO=0 THEN 22055
  1316. 22065  G=5:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1317. 22070  IF SWNO=<10 THEN NCO=SWNO   :GOSUB *定額項目入力    :GOTO *COGSEL 
  1318. 22075  IF SWNO=<20 THEN NCO=SWNO-10:GOSUB *定額項目上切換え:GOTO *COGSEL 
  1319. 22080  IF SWNO=<30 THEN NCO=SWNO-20:GOSUB *定額項目下切換え:GOTO *COGSEL 
  1320. 22085  IF SWNO=<40 THEN NCO=SWNO-30:GOSUB *定額項目転記    :GOTO *COGSEL 
  1321. 22090  IF SWNO=41  THEN             GOSUB *全項目転記      :GOTO *COGSEL
  1322. 22095  IF SWNO=42  THEN             GOTO  *定額編集終了
  1323. 22100 *COGSEL
  1324. 22105  G=5:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1325. 22110  GOTO *COSEL
  1326. 22115 *全項目転記 '
  1327. 22120  FOR NCO=1 TO 10
  1328. 22125    GOSUB *定額項目転記 
  1329. 22130  NEXT NCO
  1330. 22135  RETURN
  1331. 22140 *定額編集終了
  1332. 22145  GOSUB *HKCFPUT
  1333. 22150  GOSUB *定額編集枠消去
  1334. 22155  GOSUB *データ表示
  1335. 22160  SWNO=SWNOCO:COMODE=0
  1336. 22165  RETURN
  1337. 22170 '
  1338. 22175 *定額項目入力 '
  1339. 22180  MESN=25:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  1340. 22181  LY=W_Y1(G)+40+(NCO-1)*16
  1341. 22190 '項目
  1342. 22192  LX=W_X1(G)+30:LC=1:CBC=5:LL=16:LG=1:LP=1:LINS=1:DSPC=0:CN=1
  1343. 22194  GOSUB *CNSTIN
  1344. 22200 '金額
  1345. 22202  LX=W_X1(G)+132:LC=7:CBC=8:LL=10:LG=1:LP=1:LINS=0:DSPC=6:CN=2
  1346. 22204  GOSUB *CNSTIN
  1347. 22210 '日付
  1348. 22212  LX=W_X1(G)+200:LC=5:CBC=1:LL=2:LP=1:LG=1:LINS=0:DSPC=4:CN=3
  1349. 22214  GOSUB *CNSTIN:CODY=VAL(COX$(NCO,3))
  1350. 22220  IF CODY>31 OR CODY<1 THEN 22210
  1351. 22230  RETURN
  1352. 22240 *CNSTIN
  1353. 22250  L$(1)=COX$(NCO,CN):GOSUB *LKEYIN:COX$(NCO,CN)=L$(1)
  1354. 22255  LINE(LX,LY)-(LX+6*LL,LY+12),PSET,%CBC,BF
  1355. 22260  SYMBOL(LX,LY),COX$(NCO,CN),.75!,.75!,DSPC
  1356. 22265  RETURN
  1357. 22269 '
  1358. 22270 *定額項目上切換え
  1359. 22275  COI(NCO)=COI(NCO)-1:IF COI(NCO)<0 THEN COI(NCO)=15
  1360. 22280  GOTO *COIDISP
  1361. 22285 *定額項目下切換え
  1362. 22290  COI(NCO)=COI(NCO)+1:IF COI(NCO)>15 THEN COI(NCO)=0
  1363. 22295  GOTO *COIDISP
  1364. 22300 *COIDISP
  1365. 22305  GOSUB *CNVCOCN:GOSUB *CNVCONC:Y=W_Y1(G)+40+(NCO-1)*16
  1366. 22310    LINE(W_X1(G)+222,Y)-(W_X1(G)+222+6*8,Y+12),PSET,%0,BF
  1367. 22315  SYMBOL(W_X1(G)+222,Y),COI$(NCO),.75!,.75!,7
  1368. 22320  MESOF=1:RETURN
  1369. 22325 '
  1370. 22330 *定額編集枠表示
  1371. 22332  MOUSE 1,,,0
  1372. 22333  LINE(552,356)-(558,357),PSET,6,BF
  1373. 22335  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1374. 22345  LOAD@ TIFDRV$+"\HK2INcst.TIF",(W_X1(G),W_Y1(G))
  1375. 22346  MOUSE 1,,,1
  1376. 22350  RETURN
  1377. 22355 *定額編集枠消去
  1378. 22360  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1379. 22365  LINE(552,356)-(558,357),PSET,0,BF
  1380. 22370  RETURN
  1381. 22375 '
  1382. 22380 *定額支出表示
  1383. 22385  FOR NCO=1 TO 10:Y=W_Y1(G)+40+(NCO-1)*16
  1384. 22390      LINE(W_X1(G)+ 30,Y)-(W_X1(G)+28+6*16,Y+12),PSET,%5,BF
  1385. 22391    SYMBOL(W_X1(G)+ 30,Y),COX$(NCO,1),.75!,.75!,0
  1386. 22395      LINE(W_X1(G)+132,Y)-(W_X1(G)+132+6*10,Y+12),PSET,%8,BF
  1387. 22396    SYMBOL(W_X1(G)+132,Y),COX$(NCO,2),.75!,.75!,6
  1388. 22400      LINE(W_X1(G)+200,Y)-(W_X1(G)+200+6*2,Y+12),PSET,%1,BF
  1389. 22401    SYMBOL(W_X1(G)+200,Y),COX$(NCO,3),.75!,.75!,4
  1390. 22405    GOSUB *CNVCONC
  1391. 22410      LINE(W_X1(G)+222,Y)-(W_X1(G)+222+6*6,Y+12),PSET,%0,BF
  1392. 22411    SYMBOL(W_X1(G)+222,Y),COI$(NCO),.75!,.75!,7
  1393. 22415  NEXT NCO
  1394. 22420  RETURN
  1395. 22425 '
  1396. 22430 *CNVCONC
  1397. 22435  COI(NCO)=VAL(COX$(NCO,4))
  1398. 22440  IF COI(NCO)=0 THEN COI$(NCO)=" ---- "   :RETURN
  1399. 22445                COI$(NCO)=CFI$(COI(NCO))  :RETURN
  1400. 22450 *CNVCOCN
  1401. 22455  COX$(NCO,4)=RIGHT$(STR$(100+COI(NCO)),2):RETURN
  1402. 22460 *CNVCOND
  1403. 22465  CODY=VAL(COX$(NCO,3))                   :RETURN
  1404. 22470 *CNVCODN
  1405. 22475  A$=STR$(100+VAL(COX$(NCO,3)))
  1406. 22480  COX$(NCO,3)=RIGHT$(A$,2)                :RETURN
  1407. 22485 *CNVCOYN
  1408. 22490  A$=SPACE$(10)+STR$(VAL(COX$(NCO,2)))
  1409. 22495  COX$(NCO,2)=RIGHT$(A$,10)               :RETURN
  1410. 22500 '
  1411. 22505 *定額項目転記 
  1412. 22510  DYX=DY:DYX$=DY$:SWNOW=SWNO
  1413. 22512  X1=W_X1(G)+220:Y1=W_Y1(G)+39+16*(NCO-1)
  1414. 22513  X2=W_X1(G)+273:Y2=W_Y1(G)+53+16*(NCO-1)
  1415. 22515  LINE(X1,Y1)-(X2,Y2),XOR,1,BF
  1416. 22520  IF COI(NCO)=0 THEN MESN=28:GOSUB *MESDSP:GOTO 22555
  1417. 22525  CPYP=COI(NCO)
  1418. 22530  MESN=26:GOSUB *MESDSP
  1419. 22535  COW$=COX$(NCO,1):GOSUB *単語抽出
  1420. 22540  RDY=VAL(COX$(NCO,3)):GOSUB *HKDGET
  1421. 22545  IF INSTR(DRM$(CPYP),COW$)=0 THEN 22560
  1422. 22550  MESN=27:GOSUB *MESDSP
  1423. 22555  PLAY "v8o7l16e":WAIT SWAIT\1+1:GOTO 22585
  1424. 22560 '転記
  1425. 22562  PLAY "v8o6l16ec"
  1426. 22565  MID$(DRM$(CPYP),52-LEN(COW$)+1,LEN(COW$))=COW$
  1427. 22570  DYN#(CPYP)=DYN#(CPYP)+VAL(COX$(NCO,2))
  1428. 22575  DYN$(CPYP)=RIGHT$(SPACE$(10)+STR$(DYN#(CPYP)),10)
  1429. 22580  DY=VAL(COX$(NCO,3)):GOSUB *家計簿データ保存
  1430. 22585  LINE(X1,Y1)-(X2,Y2),XOR,1,BF
  1431. 22590  SWNO=SWNOW:DY=DYX:DY$=DYX$
  1432. 22595  RETURN
  1433. 22600 '
  1434. 22605 *単語抽出
  1435. 22610  SPP1=INSTR(COW$," "):SPP2=INSTR(COW$," ")
  1436. 22615  IF (SPP1=0) AND (SPP2=0) THEN SPP=0   :GOTO 22635
  1437. 22620  IF SPP1=0                THEN SPP=SPP2:GOTO 22635
  1438. 22625  IF SPP2=0                THEN SPP=SPP1:GOTO 22635
  1439. 22630  IF SPP1=<SPP2 THEN SPP=SPP1 ELSE SPP=SPP2
  1440. 22635  IF SPP=1 THEN COW$=""    :GOTO 22650
  1441. 22640  IF SPP=0 THEN COW$=COW$  :GOTO 22650
  1442. 22645                COW$=LEFT$(COW$,SPP-1) 
  1443. 22650  RETURN
  1444. 22655 '
  1445. 23000 '//////////////////////////////////////////////////////
  1446. 23010 '                               累計表 v1.3
  1447. 23011 '          ドラッグ対応         累計表 v1.4 1995.05
  1448. 23020 *累計表表示
  1449. 23025  MCN=2:GOSUB *MCDSET
  1450. 23030  G=6:SWNOX=SWNO
  1451. 23050  GOSUB *累計表枠表示
  1452. 23055  GOSUB *月間総計ファイル作成 
  1453. 23056  GOSUB *HKTFGET
  1454. 23060  GOSUB *累計表データ表示
  1455. 23065  MCN=1:GOSUB *MCDSET
  1456. 23070  MESN=21:GOSUB *MESDSP
  1457. 23090  G=6:GOSUB *MCSELECT'ボタン選択:'swpass=1 cut
  1458. 23095  IF SWNO<0 THEN SWNO=1
  1459. 23100  IF SWNO=0 THEN 23090
  1460. 23110  ON SWNO GOTO *SRU1,*SRU2
  1461. 23120  *SRU1:'取消
  1462. 23130   G=6:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1463. 23140   GOSUB *累計表枠消去
  1464. 23150   'GOSUB *データ表示
  1465. 23160   SWNO=SWNOX
  1466. 23170   RETURN
  1467. 23180  *SRU2:'drag
  1468. 23190   GOSUB *MCDRAG 'ドラッグ
  1469. 23200   GOTO 23090
  1470. 23260 '
  1471. 23300 *累計額計算:' HKDCAL の後に実行 24400-24800
  1472. 23310 '総累計:'----------------------------------------
  1473. 23320  TRGD#=VAL(YR$+MN$)*100#+RDY:TRG#=VAL(SSYMD$)
  1474. 23330  IF TRGD#=TRG# THEN CLRQ=0 ELSE CLRQ=1
  1475. 23340  IF TRGD#<TRG# THEN 23590
  1476. 23350  FOR II=1 TO 15:'---各項目
  1477. 23360    DYT#(II)=DYT#(II)*CLRQ+(DYN#(II)-DYNX#(II)*CLRQ)
  1478. 23370    DYT$(II)=RIGHT$(SPACE$(10)+STR$(DYT#(II)),10)
  1479. 23380  NEXT II
  1480. 23400  FOR II=1 TO 15:DYNX#(II)=DYN#(II)  :NEXT II
  1481. 23420  GOSUB *累計表合計計算
  1482. 23430  RETURN
  1483. 23440 '
  1484. 23490 '------------------------------------------------
  1485. 23500 *累計諸演算
  1486. 23505  AVRN=IR-RSS+1
  1487. 23510  FOR II=1 TO 15
  1488. 23520     IF AVRN=0 THEN DYA#(II)=0:GOTO 23525
  1489. 23521    DYA#(II)=INT(DYT#(II)/AVRN)
  1490. 23525     IF DYA#(II)=0 THEN DYR#(II)=0:GOTO 23530
  1491. 23526    DYR#(II)=(DYM#(II)/DYA#(II))*100
  1492. 23530    DYA$(II)=RIGHT$(SPACE$(11)+STR$(DYA#(II)),10)
  1493. 23535    CVNR#=DYR#(II):GOSUB *小数点変換:DYR$(II)=CVNO$
  1494. 23540  NEXT II
  1495. 23550   IF AVRN=0 THEN TAAI#=0:TAAO#=0:GOTO 23560
  1496. 23551  TAAI#=INT(TTAI#/AVRN):TAAO#=INT(TTAO#/AVRN):'月平均収入・支出
  1497. 23560   IF TAAI#=0 THEN TRAI#=0:GOTO 23565
  1498. 23561  TRAI#=(TMAI#/TAAI#)*100       :'平月比収入
  1499. 23565   IF TAAO#=0 THEN TRAO#=0:GOTO 23570
  1500. 23566  TRAO#=(TMAO#/TAAO#)*100       :'平月比支出
  1501. 23570  TAAI$=RIGHT$(SPACE$(10)+STR$(TAAI#),10)
  1502. 23575  TAAO$=RIGHT$(SPACE$(10)+STR$(TAAO#),10)
  1503. 23580    CVNR#=TRAI#:GOSUB *小数点変換:TRAI$=CVNO$
  1504. 23585    CVNR#=TRAO#:GOSUB *小数点変換:TRAO$=CVNO$
  1505. 23590  RETURN
  1506. 23595 '
  1507. 23600 *小数点変換
  1508. 23605  CVNR1#=INT(CVNR#)
  1509. 23610  CVNR1$=RIGHT$(SPACE$(8)+STR$(CVNR1#),8)+"."
  1510. 23620  CVNR2#=INT((CVNR#-CVNR1#)*100)
  1511. 23630  CVNR2$=RIGHT$(STR$(100+CVNR2#),2)
  1512. 23640  CVNO$=RIGHT$(CVNR1$+CVNR2$,10)
  1513. 23650  RETURN
  1514. 23660 '
  1515. 23700 *累計表枠表示
  1516. 23705  MOUSE 1,,,0
  1517. 23710  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1518. 23720  LINE(552,341)-(558,342),PSET,6,BF
  1519. 23730  LOAD@ TIFDRV$+"\HK2INtt.TIF",(W_X1(G),W_Y1(G))
  1520. 23740  MOUSE 1,,,1
  1521. 23750  FOR II=1 TO 15
  1522. 23760    A$=CFI$(II):IF II>3 THEN YY=14 ELSE YY=0
  1523. 23770    SYMBOL(W_X1(G)+27,W_Y1(G)+54+YY+(II-1)*14),A$,.75!,.75!,0
  1524. 23780  NEXT II
  1525. 23890 RETURN
  1526. 23900 '
  1527. 23910 *累計表枠消去
  1528. 23920  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1529. 23925  LINE(552,341)-(558,342),PSET,0,BF
  1530. 23930  RETURN
  1531. 23940 '
  1532. 24000 *起算日表示
  1533. 24010  A$=RIGHT$(SDAY$,2)
  1534. 24020  SYMBOL(573,396),A$,.75!,.75!,%2
  1535. 24030  A$=LEFT$(SSYMD$,4)+"."+MID$(SSYMD$,5,2)+"."+RIGHT$(SSYMD$,2)
  1536. 24040  SYMBOL(573,434),A$,.75!,.75!,%2
  1537. 24050  RETURN
  1538. 24060 '
  1539. 24100 *累計表データ表示
  1540. 24105  GOSUB *累計表合計計算
  1541. 24106  GOSUB *累計諸演算
  1542. 24110  FOR II=1 TO 15
  1543. 24120    IF II>3 THEN YY=14 ELSE YY=0
  1544. 24125    Y=W_Y1(G)+54+YY+(II-1)*14
  1545. 24130    SYMBOL(W_X1(G)+ 78,Y),DYM$(II),.75!,.75!,0
  1546. 24135    SYMBOL(W_X1(G)+149,Y),DYT$(II),.75!,.75!,0
  1547. 24140    SYMBOL(W_X1(G)+221,Y),DYA$(II),.75!,.75!,0
  1548. 24145    SYMBOL(W_X1(G)+294,Y),DYR$(II),.75!,.75!,0
  1549. 24150  NEXT II
  1550. 24160    Y=W_Y1(G)+54+(4-1)*14
  1551. 24210    SYMBOL(W_X1(G)+ 78,Y),TMAI$,.75!,.75!,1
  1552. 24212    SYMBOL(W_X1(G)+149,Y),TTAI$,.75!,.75!,1
  1553. 24214    SYMBOL(W_X1(G)+221,Y),TAAI$,.75!,.75!,1
  1554. 24216    SYMBOL(W_X1(G)+294,Y),TRAI$,.75!,.75!,1
  1555. 24220    Y=W_Y1(G)+54+14+(16-1)*14
  1556. 24230    SYMBOL(W_X1(G)+ 78,Y),TMAO$,.75!,.75!,2
  1557. 24232    SYMBOL(W_X1(G)+149,Y),TTAO$,.75!,.75!,2
  1558. 24234    SYMBOL(W_X1(G)+221,Y),TAAO$,.75!,.75!,2
  1559. 24236    SYMBOL(W_X1(G)+294,Y),TRAO$,.75!,.75!,2
  1560. 24240    Y=W_Y1(G)+54+20+(17-1)*14
  1561. 24250    SYMBOL(W_X1(G)+ 78,Y),TMR$,.75!,.75!,0
  1562. 24260    SYMBOL(W_X1(G)+149,Y),TTR$,.75!,.75!,0
  1563. 24270  RETURN
  1564. 24280 '
  1565. 24300 *累計表合計計算
  1566. 24310  TTAI#=0:TMAI#=0:TTAO#=0:TMAO#=0
  1567. 24320  FOR II=1 TO 3
  1568. 24330    TMAI#=TMAI#+VAL(DYM$(II)):TTAI#=TTAI#+VAL(DYT$(II))
  1569. 24340  NEXT II
  1570. 24350  TMAI$=RIGHT$(SPACE$(10)+STR$(TMAI#),10)     :'月間収入合計
  1571. 24360  TTAI$=RIGHT$(SPACE$(10)+STR$(TTAI#),10)     :'累積収入合計
  1572. 24370  FOR II=4 TO 15
  1573. 24380    TMAO#=TMAO#+VAL(DYM$(II)):TTAO#=TTAO#+VAL(DYT$(II))
  1574. 24390  NEXT II
  1575. 24400  TMAO$=RIGHT$(SPACE$(10)+STR$(TMAO#),10)     :'月間支出合計
  1576. 24410  TTAO$=RIGHT$(SPACE$(10)+STR$(TTAO#),10)     :'累積支出合計
  1577. 24420  TMR$=RIGHT$(SPACE$(10)+STR$(TMAI#-TMAO#),10):'月間残高
  1578. 24430  TTR$=RIGHT$(SPACE$(10)+STR$(TTAI#-TTAO#),10):'累積残高
  1579. 24440  RETURN
  1580. 24450 '
  1581. 24500 '///////////////////////////////////////////////////////////
  1582. 24510 '                                       総計再計算
  1583. 24520 *月間総計ファイル作成
  1584. 24530  DYX=DY  :MNX=MN  :YRX=YR  :SWNOXX=SWNO:IYMX$=IYM$
  1585. 24535  DYX$=DY$:MNX$=MN$:YRX$=YR$
  1586. 24540  ENDF=0:PCDAYC=0
  1587. 24550  IF DY>=SDAY THEN 24580
  1588. 24560    YDEF=0:MDEF=-1:DDEF=0:GOSUB *年月日変更
  1589. 24562    IYM$=YR$+MN$:GOSUB *HKISRC
  1590. 24566    IF FIDX=1 THEN 24580
  1591. 24568    YDEF=0:MDEF=+1:DDEF=0:GOSUB *年月日変更
  1592. 24570    IYM$=YR$+MN$  :ENDF=1
  1593. 24580  MESN=23:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  1594. 24590  GOSUB *HKTFGET
  1595. 24600  PCCD=1:PCMES$=YR$+"年"+MN$+"月現在 累計額演算中":GOSUB *PROCD
  1596. 24620  GOSUB *TRG2CLR
  1597. 24630  IF ENDF=1 THEN 24690
  1598. 24660 '---------- SDAY TO 31
  1599. 24661  FOR RDY=SDAY TO 31
  1600. 24662    LINE(68*8,465)-(79*8,465+12),PSET,0,BF
  1601. 24664    SYMBOL(68*8,465),IYM$+"/"+RIGHT$("  "+STR$(RDY),2),.75!,.75!,4
  1602. 24666    GOSUB *HKDGET:PCDAYC=PCDAYC+1
  1603. 24668    GOSUB *累計額演算
  1604. 24669    PCCD=3:PCCUR=PCDAYC:PCMAX=31:PCINT=1:GOSUB *PROCD
  1605. 24670  NEXT RDY :'----------
  1606. 24680  YDEF=0:MDEF=+1:DDEF=0:GOSUB *年月日変更
  1607. 24682  IYM$=YR$+MN$
  1608. 24684  GOSUB *HKISRC
  1609. 24686  IF FIDX=0 THEN 24740
  1610. 24688  IF SDAY=1 THEN 24740
  1611. 24690 '---------- 1 TO SDAY-1
  1612. 24691  FOR RDY=1 TO SDAY-1
  1613. 24692    LINE(68*8,465)-(79*8,465+12),PSET,0,BF
  1614. 24694    SYMBOL(68*8,465),IYM$+"/"+RIGHT$("  "+STR$(RDY),2),.75!,.75!,4
  1615. 24696    GOSUB *HKDGET
  1616. 24698    GOSUB *累計額演算:PCDAYC=PCDAYC+1
  1617. 24699    PCCD=3:PCCUR=PCDAYC:PCMAX=31:PCINT=1:GOSUB *PROCD
  1618. 24700  NEXT RDY:'------------
  1619. 24740  GOSUB *累計額文字変換
  1620. 24750  GOSUB *HKTFPUT:ENDF=0
  1621. 24760  MESN=14:GOSUB *SNDMSG
  1622. 24765  PCCD=2:GOSUB *PROCD
  1623. 24770  DY=DYX  :MN=MNX  :YR=YRX  :SWNO=SWNOXX:IYM$=IYMX$
  1624. 24775  DY$=DYX$:MN$=MNX$:YR$=YRX$
  1625. 24780  RETURN
  1626. 24790 '
  1627. 24800 *累計額文字変換
  1628. 24810  FOR II=1 TO 15
  1629. 24812    DYM$(II)=RIGHT$(SPACE$(10)+STR$(DYM#(II)),10)
  1630. 24814  NEXT II
  1631. 24820  RETURN
  1632. 24830 '
  1633. 24840 *累計額演算
  1634. 24850  FOR II=1 TO 15: DYM#(II)=DYM#(II)+VAL(DYN$(II)) :NEXT II
  1635. 24870  RETURN
  1636. 24880 '
  1637. 24890 *TRG2CLR
  1638. 24900  FOR II=1 TO 15: DYM#(II)=0:NEXT II
  1639. 24920  RETURN
  1640. 24970 '
  1641. 24980 '///////////////////////////////////////////////////////////
  1642. 24990 '                                   辞書入力 v1.3
  1643. 25000 *辞書入力
  1644. 25005  G=3:CBC=0 :'文字背景色
  1645. 25010  LXDIC=W_X1(1)+202:LYDIC=W_Y1(1)+144+16*(IPNO-1)
  1646. 25020  IF IPNO>3 THEN LYDIC=LYDIC+24
  1647. 25040  GOSUB *辞書データ枠表示
  1648. 25050  A$=DRM$(IPNO)
  1649. 25060  SPS=INSTR(A$,"  ")
  1650. 25070  IF SPS=1           THEN LMG$="":GOTO 25100
  1651. 25080  IF SPS>50 OR SPS=0 THEN LMG$=A$:GOTO 25100
  1652. 25090  LMG$=LEFT$(A$,SPS)
  1653. 25100  LX=LXDIC:LY=LYDIC:LC=6:SYMBOL(LX,LY),LMG$,.75!,.75!,%LC
  1654. 25110  WSP=1
  1655. 25120  GOSUB *辞書データ表示
  1656. 25130  MESN=17:GOSUB *MESDSP
  1657. 25140  G=3:GOSUB *MCSELECT'ボタン選択 :'swpass=1 cut
  1658. 25145  IF SWNO<0 THEN SWNO=1
  1659. 25146  IF SWNO=22 THEN GOSUB *MCDRAG :GOTO 25140
  1660. 25150  IF SWNO>5 THEN *WSEL
  1661. 25160  ON SWNO GOTO *WS3,*WS2,*WS1,*WS5,*WS4
  1662. 25170  GOTO 25140
  1663. 25180  '
  1664. 25190  *WS4:'--- PAGE INC
  1665. 25200   G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1666. 25210   WSP=WSP+16
  1667. 25220   IF WSP>WRDM(IPNO) THEN WSP=WSP-16:GOTO 25240
  1668. 25230   GOSUB *辞書データ表示
  1669. 25240   G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1670. 25250   GOTO 25130
  1671. 25260  *WS5:'--- PAGE DEC
  1672. 25270   G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1673. 25280   WSP=WSP-16
  1674. 25290   IF WSP<1 THEN WSP=WSP+16:GOTO 25310
  1675. 25300   GOSUB *辞書データ表示
  1676. 25310   G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1677. 25320   GOTO 25130
  1678. 25330  *WS3:'--- 取消
  1679. 25340   ENDF=1:LMG$=DRM$(IPNO)
  1680. 25360   GOTO 25390
  1681. 25370  *WS1:'--- 入力
  1682. 25380   ENDF=0
  1683. 25390   IF RIGHT$(LMG$,1)="・" THEN LMG$=LEFT$(LMG$,LEN(LMG$)-1)
  1684. 25400   DRM$(IPNO)=LEFT$(LMG$+SPACE$(52),52)
  1685. 25420   LX=LXDIC:LY=LYDIC:LC=6
  1686. 25430   SYMBOL(LX,LY),DRM$(IPNO),.75!,.75!,%LC
  1687. 25450   G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1688. 25460   G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1689. 25470   G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1690. 25480   GOSUB *辞書データ枠消去
  1691. 25490   RETURN
  1692. 25500  *WS2:'--- 消去
  1693. 25510   G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1694. 25520   LMG$=""
  1695. 25530   LX=LXDIC:LY=LYDIC
  1696. 25540   LINE(LX,LY)-(LX+6*52,LY+11),PSET,%CBC,BF
  1697. 25550   G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1698. 25560   GOTO 25130
  1699. 25570  *WSEL'--------------
  1700. 25580   G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1701. 25590   WSELN=WSP+(SWNO-6)
  1702. 25600   IF WSELN>WRDM(IPNO) THEN 25680
  1703. 25610   IF KLEFT$(WRD$(IPNO,WSELN),1)="★" THEN 25680
  1704. 25620   LMG$=LMG$+WRD$(IPNO,WSELN)+"・"
  1705. 25630   IF LEN(LMG$)<=52 THEN 25670
  1706. 25640   LMG$=LEFT$(LMG$,53):CHT=KTYPE(KRIGHT$(LMG$,1),1)
  1707. 25650   IF CHT=1 THEN LMG$=LEFT$(LMG$,51): GOTO 25670
  1708. 25660                 LMG$=LEFT$(LMG$,52)
  1709. 25670   LX=LXDIC:LY=LYDIC:LC=6:SYMBOL(LX,LY),LMG$,.75!,.75!,%LC
  1710. 25680   G=3:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
  1711. 25690   GOTO 25130
  1712. 25700 '
  1713. 25800 *辞書データ枠表示
  1714. 25805  MOUSE 1,,,0
  1715. 25810  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1716. 25820  LOAD@ TIFDRV$+"\hk2DICD.TIF",(W_X1(G),W_Y1(G))
  1717. 25830  MOUSE 1,,,1
  1718. 25840  SYMBOL(W_X1(G)+22,W_Y1(G)+6),CFI$(IPNO),.8!,.75!,%1,,,1
  1719. 25860  RETURN
  1720. 25870 *辞書データ枠消去
  1721. 25880  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1722. 25900  RETURN
  1723. 25910 '
  1724. 26000 *辞書入力スイッチ
  1725. 26010  IF DICIF=0 THEN DICSC=0 ELSE DICSC=4
  1726. 26020  LINE(552,326)-(558,327),PSET,DICSC,BF
  1727. 26030 ' WAIT SWAIT\1+1
  1728. 26040  RETURN
  1729. 26050 '
  1730. 26100 *辞書データ表示
  1731. 26130  WPAGE=INT((WSP-1)/16)+1
  1732. 26140  MPAGE=INT((WRDM(IPNO)-1)/16)+1
  1733. 26150  WPG$=RIGHT$(STR$(WPAGE),1)+"/"+RIGHT$(STR$(MPAGE),1)
  1734. 26160  LINE(W_X1(G)+110,W_Y1(G)+6)-(W_X1(G)+120,W_Y1(G)+16),PSET,0,BF
  1735. 26165  SYMBOL(W_X1(G)+110,W_Y1(G)+6),WPG$,.75!,.75!,4,,,,2
  1736. 26170  FOR II=0 TO 15
  1737. 26172    LINE(W_X1(G)+10,W_Y1(G)+56+14*II)-(W_X1(G)+100,W_Y1(G)+67+14*II),PSET,0,BF
  1738. 26174  NEXT II
  1739. 26180  FOR II=0 TO 15
  1740. 26185    IF (WSP+II)>WRDM(IPNO) THEN 26220
  1741. 26190    WRDX$=LEFT$(WRD$(IPNO,WSP+II),14)
  1742. 26200    IF KLEFT$(WRDX$,1)="★" THEN WRDDC=4 ELSE WRDDC=7
  1743. 26215    SYMBOL(W_X1(G)+10,W_Y1(G)+56+14*II),WRDX$,.75!,.75!,WRDDC
  1744. 26220  NEXT II
  1745. 26230  RETURN
  1746. 26240 '
  1747. 27100 '-----------------------------------------------------------
  1748. 27110 *家計簿データ保存:'  v1.4
  1749. 27115  IF COMODE=1 THEN 27135
  1750. 27120  G=1:B=BSAVE:BST(G,B)=1:GOSUB *BTN_ONOFF 
  1751. 27130  MESN=13:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
  1752. 27135  GOSUB *HKISRC :'v1.4 月間総計計算後RIがずれるため追加
  1753. 27140  RDY=DY:GOSUB *HKDPUT
  1754. 27150  MID$(IMAK$,DY,1)="*"
  1755. 27155  MID$(IMAK$,32,1)=" "
  1756. 27165  GOSUB *HKIPUT:GOSUB *HKTFPUT
  1757. 27170  IPF=0
  1758. 27172  IF COMODE=1 THEN 27180
  1759. 27175  G=1:B=BSAVE:BST(G,B)=0:GOSUB *BTN_ONOFF 
  1760. 27180  RETURN
  1761. 27185 '
  1762. 27200 *電卓入力スイッチ
  1763. 27210  IF CALCF=0 THEN CALCC=0 ELSE CALCC=4
  1764. 27220  LINE(552,311)-(558,312),PSET,CALCC,BF
  1765. 27230 ' WAIT SWAIT\1+1
  1766. 27240  RETURN
  1767. 27250 '
  1768. 29900 '------------------------------------------------------------------
  1769. 30000 '
  1770. 30100 *ABOUT表示
  1771. 30105  X1A=146:Y1A=150:XPA=326:YPA=100
  1772. 30106  MOUSE 1,,,0
  1773. 30110  GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
  1774. 30120  LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
  1775. 30125  MOUSE 1,,,1
  1776. 30130  CMES$=ABOUT$:GOSUB *確認
  1777. 30150  PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
  1778. 30160  RETURN
  1779. 30170 '
  1780. 30500 *数字漢字変換
  1781. 30505  NBK$=""
  1782. 30510  FOR INBK=1 TO NBN
  1783. 30512    NBAX$=MID$(NBA$,INBK,1)
  1784. 30514    IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 30530
  1785. 30520    NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
  1786. 30530  NEXT INBK
  1787. 30540  RETURN
  1788. 30580 '
  1789. 31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
  1790. 31010  FOR II=0 TO 15
  1791. 31020    PALETTE II,[16*II,16*II,16*II]
  1792. 31030  NEXT II
  1793. 31040  FOR II=0 TO 255 STEP 5
  1794. 31050    FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
  1795. 31054      PALETTE JJ,[KK,KK,KK]
  1796. 31056    NEXT JJ
  1797. 31060  NEXT II
  1798. 31070  RETURN
  1799. 31080 '
  1800. 31200 *確認
  1801. 31205  G=2:SWNOX=SWNO:MOUSE 1,,,0
  1802. 31210  GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1803. 31220  LOAD@ TIFDRV$+"\CAUTION2.TIF",(W_X1(G),W_Y1(G))
  1804. 31225  PLAY "o6l4ce":MOUSE 1,,,1
  1805. 31230  FOR II=1 TO 4
  1806. 31232    SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,6
  1807. 31234    WAIT SWAIT\10+1
  1808. 31236    LINE(W_X1(G)+102,W_Y1(G)+9)-(W_X1(G)+102+6*39,W_Y1(G)+9+12),PSET,%9,BF
  1809. 31237    WAIT SWAIT\10+1
  1810. 31238  NEXT II
  1811. 31239  SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,7
  1812. 31240  MESN=19:GOSUB *SNDMSG:'28chr
  1813. 31241  G=2:GOSUB *MCSELECT'ボタン選択
  1814. 31242  IF SWNO<0 THEN SWNO=2
  1815. 31243  IF SWNO=3 THEN GOSUB *MCDRAG:GOTO 31241
  1816. 31244  IF SWNO=0 THEN 31241
  1817. 31245  G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
  1818. 31260  WAIT SWAIT\5+1
  1819. 31270  PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
  1820. 31272  CAUNO=SWNO:SWNO=SWNOX
  1821. 31275  RETURN
  1822. 31280 '
  1823. 31700 *項目検索
  1824. 31705  Y3=84:Y4=118:ITMSW=0
  1825. 31710  X1=124:Y1=142:X2=518:XP=215:Y2=214:YP=16
  1826. 31720  IF X_M<X1 OR X_M>X2                    THEN RETURN
  1827. 31722    IF (Y_M>Y3) AND (Y_M<Y4) THEN ITMN=0:GOTO 31760
  1828. 31725  IF X_M<XP THEN ITMK=1 ELSE ITMK=2
  1829. 31730  IF Y_M<Y1 OR Y_M>Y1+YP*3               THEN 31735
  1830. 31732    ITMN=(Y_M-Y1)\YP+1                  :GOTO 31760
  1831. 31735  IF Y_M<Y2 OR Y_M>Y2+YP*12              THEN RETURN
  1832. 31737    ITMN=(Y_M-Y2)\YP+4
  1833. 31760  ITMSW=1:PLAY "@21v2o5l64a@30"
  1834. 31770  RETURN
  1835. 31780 '
  1836. 31800 *カレンダー検索
  1837. 31810  X0=551:Y0=90:XP=12:YP=10:CLDSW=0
  1838. 31820  IF X_M<X0 OR X_M>X0+XP*7 THEN RETURN
  1839. 31830  IF Y_M<Y0 OR Y_M>Y0+YP*6 THEN RETURN
  1840. 31840  CLX=(X_M-X0)\XP:CLY=(Y_M-Y0)\YP
  1841. 31850  SELDAY=CLM(CLX,CLY)
  1842. 31860  IF SELDAY<>0 THEN CLDSW=1:PLAY "@21v2o5l64a@30"
  1843. 31870  RETURN
  1844. 31880 '
  1845. 32000 '
  1846. 32010 *カレンダー表示
  1847. 32020  X0=551:Y0=90:XP=12:YP=10:DYX=DY
  1848. 32030  FOR CLX=0 TO 6:FOR CLY=0 TO 5:CLM(CLX,CLY)=0:NEXT:NEXT
  1849. 32050  DY=1:GOSUB *WEEKN:WKMCLD=WK
  1850. 32060  LINE(X0-1,Y0-1)-(X0-1+XP*7-1,Y0+YP*6-2),PSET,%5,BF
  1851. 32070  FOR IDSP=0 TO MNDN-1:COLOR 7,7
  1852. 32080    CLDD$=RIGHT$("  "+STR$(IDSP+1),2)
  1853. 32090    CLX=(WK+IDSP) MOD 7
  1854. 32100    CLY=INT((WK+IDSP)/7)
  1855. 32110    CLM(CLX,CLY)=IDSP+1
  1856. 32120    CLDC=1:CLDX=X0+CLX*XP:CLDY=Y0+CLY*YP
  1857. 32130    IF CLX=0 THEN CLDC=10
  1858. 32140    IF CLX=6 THEN CLDC=9
  1859. 32150    GOSUB *祝日検出
  1860. 32180    SYMBOL(CLDX,CLDY),CLDD$,.5!,.5!,%CLDC,,,,1
  1861. 32230  NEXT IDSP
  1862. 32240  DY=DYX
  1863. 32250  RETURN
  1864. 32260 '
  1865. 32270 *行事表示
  1866. 32280  EVENT$=EVDT$(MN,DY)
  1867. 32290  LINE(310,37)-(307+6*32,37+11),PSET,%8,BF
  1868. 32295  IF LEFT$(EVENT$,6)="(祝日)" THEN CL=11:GOTO 32300
  1869. 32296  IF LEFT$(EVENT$,2)="★"     THEN CL=12:GOTO 32300
  1870. 32297  CL=15
  1871. 32300  SYMBOL(310,37),EVENT$,.75!,.75!,%CL
  1872. 32310  RETURN
  1873. 32320 '
  1874. 32330 *祝日検出
  1875. 32340  HOLDY=0:EVEX=0
  1876. 32350  CLEV$=EVDT$(MN,IDSP+1)
  1877. 32360  IF 休日1$="" THEN 32390
  1878. 32370  IF CLEV$<>SPACE$(40) THEN EVEX=1
  1879. 32380  IF INSTR(CLEV$,休日1$)<>0 THEN CLDC=10:HOLDY=(1 AND 代休1)
  1880. 32390  IF 休日2$="" THEN 32410
  1881. 32400  IF INSTR(CLEV$,休日2$)<>0 THEN CLDC=10:HOLDY=(1 AND 代休2)
  1882. 32410  IF CLX=1 AND HOLDYX=1 THEN CLDC=10
  1883. 32420  HOLDYX=HOLDY
  1884. 32430  RETURN
  1885. 32440 '
  1886. 32450 *EVOPN:'行事データファイルオープン
  1887. 32460  DRV$=LEFT$(PRGDRV$,2)
  1888. 32470  IF LEN(PRGDRV$)=3 THEN DRV$=LEFT$(PRGDRV$,2):PATH$="":GOTO 32490
  1889. 32480  PATH$=RIGHT$(PRGDRV$,LEN(PRGDRV$)-2)
  1890. 32490  FLN$=DRV$+"(40)"+PATH$+"\EVENT.DAT"
  1891. 32500  OPEN "R",#1,FLN$
  1892. 32510  FIELD #1,40 AS EV$
  1893. 32520  RETURN
  1894. 32530 '
  1895. 32540 *EVGET:'行事データファイル読み込み
  1896. 32550  GOSUB *EVOPN:R=1
  1897. 32560  FOR II=1 TO 12:FOR JJ=1 TO 32
  1898. 32570    GET #1,R
  1899. 32580    EVDT$(II,JJ)=EV$
  1900. 32590    R=R+1
  1901. 32600  NEXT JJ:NEXT II
  1902. 32610  CLOSE
  1903. 32620  RETURN
  1904. 32630 '
  1905. 32700 *日カーソル表示
  1906. 32710  XM0=550:XMP=12:YM0=89:YMP=10
  1907. 32715  CLX=(WKMCLD+(DY-1)) MOD 7
  1908. 32716  CLY=INT((WKMCLD+(DY-1))/7)
  1909. 32730  GOSUB *日カーソル消去
  1910. 32740  XM1=XM0+CLX*XMP:YM1=YM0+CLY*YMP
  1911. 32750  XM2=XM1+10     :YM2=YM1+9
  1912. 32770  LINE(XM1,YM1)-(XM2,YM2),PSET,4,B
  1913. 32780  CLXX=CLX:CLYX=CLY
  1914. 32790  RETURN
  1915. 32800 '
  1916. 32810 *日カーソル消去
  1917. 32830  XM1=XM0+CLXX*XMP:YM1=YM0+CLYX*YMP
  1918. 32840  XM2=XM1+10      :YM2=YM1+9
  1919. 32860  LINE(XM1,YM1)-(XM2,YM2),PSET,%5,B
  1920. 32870  RETURN
  1921. 32880 '
  1922. 33000 *PROCD:'処理状況表示
  1923. 33010  ON PCCD GOTO *PC01,*PC02,*PC03
  1924. 33020 *PC01
  1925. 33030  GET@A(150,200)-(483,256),HLPC#
  1926. 33040  MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2PROC.TIF",(150,200):MOUSE 1,,,1
  1927. 33050  SYMBOL(226,204),PCMES$,.75!,.75!,0
  1928. 33060  RETURN
  1929. 33070 *PC02
  1930. 33080  PUT@A(150,200)-(483,256),HLPC#
  1931. 33090  RETURN
  1932. 33100 *PC03:' pcmax,pccur,pcint
  1933. 33110  XP0=157:YP0=240:XPM=477:YPM=250
  1934. 33120  IF (PCCUR MOD PCINT)<>0 THEN RETURN
  1935. 33130  XP=XP0+INT((XPM-XP0)*(PCCUR/PCMAX))
  1936. 33140  LINE(XP0,YP0)-(XP,YPM),PSET,1,BF
  1937. 33150  RETURN
  1938. 33160 '
  1939. 34000 *PATHMAKE:'---------- パス作成 -------------------------------
  1940. 34005  DRV$=LEFT$(XDRV$,2)
  1941. 34010  IF LEN(XDRV$)=3 THEN DRV$=LEFT$(XDRV$,2):PATH$="":GOTO 34020
  1942. 34015  PATH$=RIGHT$(XDRV$,LEN(XDRV$)-2)
  1943. 34020  RETURN
  1944. 34030 '
  1945. 35000 *HKIOPN:'---------- インデックスファイルオープン
  1946. 35005  XDRV$=DATDRV$:GOSUB *PATHMAKE
  1947. 35020  FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
  1948. 35030  OPEN "R",#2,FLN$
  1949. 35040  FIELD #2,6 AS I$(1),32 AS I$(2)
  1950. 35050  IR=LOF(2)
  1951. 35060  RETURN
  1952. 35070 '
  1953. 35100 *HKDOPN:'---------- 家計簿データファイルオープン
  1954. 35105  XDRV$=DATDRV$:GOSUB *PATHMAKE
  1955. 35120  FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
  1956. 35130  OPEN "R",#1,FLN$
  1957. 35140  FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
  1958. 35150  AR=LOF(1)
  1959. 35160  RETURN
  1960. 35170 '
  1961. 35200 *HKCFOPN:'---------- 定額ファイルオープン
  1962. 35205  XDRV$=PRGDRV$:GOSUB *PATHMAKE
  1963. 35220  FLN$=DRV$+"(32)"+PATH$+"\Hkconst.DAT"
  1964. 35230  OPEN "R",#3,FLN$
  1965. 35240  FIELD #3,16 AS CO$(1),10 AS CO$(2),2 AS CO$(3),2 AS CO$(4),2 AS CO$(5)
  1966. 35260  RETURN
  1967. 35270 '
  1968. 35300 *HKTFOPN:'---------- 家計簿総計ファイルオープン
  1969. 35305  XDRV$=PRGDRV$:GOSUB *PATHMAKE
  1970. 35320  FLN$=DRV$+"(660)"+PATH$+"\HTOTAL.DAT"
  1971. 35330  OPEN "R",#4,FLN$
  1972. 35340  FIELD #4,10*15 AS DT$(1),10*15 AS DT$(2),10*18 AS DT$(3),10*18 AS DT$(4)
  1973. 35360  ATR=LOF(4):RETURN
  1974. 35370 '    ファイル構成
  1975. 35371 '      項目   1 | dyt$(1)|-| dyt$(15)| --総累計
  1976. 35372 '             2 | dym$(1)|-| dym$(15)| --月間累計
  1977. 35373 '      小分類 3 |sdyt$(1)|-|sdyt$(15)| 4|ttr$|  5|tdr$[date$]        |
  1978. 35374 '             6 |sdym$(1)|-|sdym$(15)| 7|tmr$|  8|tor$[original date]|
  1979. 35380 '
  1980. 35400 *DTLOAD:'---------- 日付ジャンプデータファイル読込
  1981. 35405  XDRV$=RAMDRV$:GOSUB *PATHMAKE
  1982. 35420  FLN$=DRV$+PATH$+"\SRCjump.DAT"
  1983. 35430  OPEN "I",#1,FLN$
  1984. 35440  DT$=INPUT$(10,#1):CLOSE
  1985. 35445  KILL DRV$+PATH$+"\SRCjump.DAT"
  1986. 35450  RETURN
  1987. 35460 '
  1988. 35500 *DTCHK :'---------- 日付ジャンプファイルチェック
  1989. 35505  XDRV$=RAMDRV$:GOSUB *PATHMAKE
  1990. 35520  FLN$=DRV$+"(1)"+PATH$+"\SRCjump.DAT"
  1991. 35530  OPEN "R",#1,FLN$:FIELD #1,1 AS X$
  1992. 35540  SRCJ=LOF(1):CLOSE
  1993. 35550  IF SRCJ=0 THEN KILL DRV$+PATH$+"\SRCjump.DAT"
  1994. 35560  RETURN
  1995. 35570 '
  1996. 35900 *SHKISRC:'---------- インデックスファイル検索S
  1997. 35910  FIDX=0
  1998. 35920  GOSUB *HKIOPN
  1999. 35930    GET #2,RR
  2000. 35940    IYM$=I$(1):IMAK$=I$(2)
  2001. 35950  CLOSE #2
  2002. 35960  RETURN
  2003. 35970 '
  2004. 36000 *HKISRC:'---------- インデックスファイル検索
  2005. 36005  FIDX=0
  2006. 36010  GOSUB *HKIOPN
  2007. 36020  FOR R=1 TO IR
  2008. 36030    GET #2,R
  2009. 36040    IF IYM$<>I$(1) THEN 36060
  2010. 36050    IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
  2011. 36060  NEXT R
  2012. 36062  GET #2,IR
  2013. 36064  YRM=VAL(LEFT$(I$(1),4)):MNM=VAL(RIGHT$(I$(1),2))
  2014. 36070  CLOSE #2
  2015. 36080  RETURN
  2016. 36090 '
  2017. 36100 *HKIPUT:'---------- インデックスファイル書き込み
  2018. 36110  GOSUB *HKIOPN
  2019. 36120  LSET I$(1)=IYM$
  2020. 36130  LSET I$(2)=IMAK$
  2021. 36140  PUT #2,RI
  2022. 36150  CLOSE #2
  2023. 36160  RETURN
  2024. 36170 '
  2025. 36200 *HKDGET:'---------- 家計簿データ読み込み
  2026. 36210  GOSUB *HKDOPN
  2027. 36220  R=RDY
  2028. 36230  GET #1,R:IF ASR<>0 THEN GET #3,R
  2029. 36240  DEV$=D$(1)
  2030. 36250  FOR II=1 TO 16:DYN$(II   )=MID$(D$(2),(II-1)*10+1,10):NEXT II
  2031. 36252  FOR II=1 TO  4:DRM$(II+ 0)=MID$(D$(3),(II-1)*52+1,52):NEXT II
  2032. 36253  FOR II=1 TO  4:DRM$(II+ 4)=MID$(D$(4),(II-1)*52+1,52):NEXT II
  2033. 36254  FOR II=1 TO  4:DRM$(II+ 8)=MID$(D$(5),(II-1)*52+1,52):NEXT II
  2034. 36255  FOR II=1 TO  4:DRM$(II+12)=MID$(D$(6),(II-1)*52+1,52):NEXT II
  2035. 36260  GOSUB *HKDCAL
  2036. 36280  CLOSE #1
  2037. 36290  RETURN
  2038. 36295 '
  2039. 36300 *HKDPUT:'---------- 家計簿データ書き込み
  2040. 36310  GOSUB *HKDOPN
  2041. 36320  R=RDY
  2042. 36330  LSET D$(1)=DEV$
  2043. 36340  DX$="":FOR II=1 TO 16:DX$=DX$+DYN$(II   ):NEXT II:LSET D$(2)=DX$
  2044. 36342  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+ 0):NEXT II:LSET D$(3)=DX$
  2045. 36343  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+ 4):NEXT II:LSET D$(4)=DX$
  2046. 36344  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+ 8):NEXT II:LSET D$(5)=DX$
  2047. 36345  DX$="":FOR II=1 TO  4:DX$=DX$+DRM$(II+12):NEXT II:LSET D$(6)=DX$
  2048. 36350  PUT #1,R
  2049. 36360  CLOSE #1
  2050. 36370  RETURN
  2051. 36380 '
  2052. 36400 *HKDCAL:'---------- 家計簿合計額計算
  2053. 36410  FOR II=1 TO 16:DYN#(II)=VAL(DYN$(II)):NEXT II
  2054. 36420  DIYN#=0:FOR II=1 TO 3 :DIYN#=DIYN#+DYN#(II):NEXT II
  2055. 36430  DIYN$=RIGHT$(SPACE$(8)+STR$(DIYN#),8)
  2056. 36440  DBYN#=0:FOR II=4 TO 7 :DBYN#=DBYN#+DYN#(II):NEXT II
  2057. 36450  DBYN$=RIGHT$(SPACE$(8)+STR$(DBYN#),8)
  2058. 36460  DOYN#=0:FOR II=4 TO 15:DOYN#=DOYN#+DYN#(II):NEXT II
  2059. 36480  DOYN$=RIGHT$(SPACE$(8)+STR$(DOYN#),8)
  2060. 36485  DION#=DIYN#-DOYN#:DION$=RIGHT$(SPACE$(8)+STR$(DION#),8)
  2061. 36490  RETURN
  2062. 36495 '
  2063. 36500 *HKID:'---------- 先頭インデックスファイルチェック
  2064. 36510  RR=1:GOSUB *SHKISRC
  2065. 36520  SSYR$=LEFT$(IYM$,4):SSMN$=RIGHT$(IYM$,2)
  2066. 36530  SSYR=VAL(SSYR$)
  2067. 36540  SSMN=VAL(SSMN$)
  2068. 36550  RETURN
  2069. 36560 '
  2070. 36700 *HKTFGET:'---------- 総計データ読み込み
  2071. 36710  GOSUB *HKTFOPN
  2072. 36730  GET #4,1
  2073. 36750  FOR II=1 TO 15:DYT$(II)=MID$(DT$(1),(II-1)*10+1,10):NEXT II
  2074. 36752  FOR II=1 TO 15:DYM$(II)=MID$(DT$(2),(II-1)*10+1,10):NEXT II
  2075. 36755  TTR$=MID$(DT$(3),(17-1)*10+1,10)
  2076. 36756  TMR$=MID$(DT$(4),(17-1)*10+1,10)
  2077. 36760  TDR$=RIGHT$(DT$(3),10):TOR$=RIGHT$(DT$(4),10)
  2078. 36770  GOSUB *HKTFMEM
  2079. 36780  CLOSE #4
  2080. 36790  RETURN
  2081. 36795 '
  2082. 36800 *HKTFPUT:'---------- 総計データ書き込み
  2083. 36810  GOSUB *HKTFOPN
  2084. 36850  DX$="":FOR II=1 TO 15:DX$=DX$+DYT$(II):NEXT II:LSET DT$(1)=DX$
  2085. 36852  DX$="":FOR II=1 TO 15:DX$=DX$+DYM$(II):NEXT II:LSET DT$(2)=DX$
  2086. 36854  DX1$=SPACE$(160):DX2$=SPACE$(160)
  2087. 36860  LSET DT$(3)=DX1$+TTR$+DATE$+SPACE$(2)
  2088. 36865  LSET DT$(4)=DX2$+TMR$+TOR$+SPACE$(2)
  2089. 36870  PUT #4,1
  2090. 36880  CLOSE #4
  2091. 36890  RETURN
  2092. 36895 '
  2093. 36900 *HKTFMEM:'---------- 家計簿データ記憶
  2094. 36910  FOR II=1 TO 15
  2095. 36912    DYNX#(II)=DYN#(II):DYT#(II)=VAL(DYT$(II))
  2096. 36913                       DYM#(II)=VAL(DYM$(II))
  2097. 36914  NEXT II
  2098. 36930  RETURN
  2099. 36940 '
  2100. 37000 *HKCFGET'----------- 定額ファイル読み込み
  2101. 37010  GOSUB *HKCFOPN
  2102. 37020  FOR R=1 TO 10
  2103. 37030    GET #3,R
  2104. 37040    FOR JJ=1 TO 5:COX$(R,JJ)=CO$(JJ):NEXT JJ
  2105. 37050  NEXT R
  2106. 37060  CLOSE
  2107. 37070  RETURN
  2108. 37080 '
  2109. 37100 *HKCFPUT'----------- 定額ファイル書き込み
  2110. 37110  GOSUB *HKCFOPN
  2111. 37120  FOR R=1 TO 10
  2112. 37125    COX$(R,5)=SPACE$(2)
  2113. 37130    FOR JJ=1 TO 5:LSET CO$(JJ)=COX$(R,JJ):NEXT JJ
  2114. 37140    PUT #3,R
  2115. 37150  NEXT R
  2116. 37160  CLOSE
  2117. 37170  RETURN
  2118. 37180 '
  2119. 37290 '
  2120. 37400  RETURN
  2121. 37500 *DICREAD:'---------- 辞書読み込み 'V1.2 1993.12.21
  2122. 37505  MESN=16:GOSUB *MESDSP
  2123. 37510  FOR II=1 TO 15
  2124. 37520    DICNO$=RIGHT$(STR$(100+II),2)
  2125. 37530    OPEN "I",#4,DICDRV$+"\HKWRD"+DICNO$+".DIC"
  2126. 37540    WRDC=1
  2127. 37550    IF EOF(4)<>0 THEN 37600
  2128. 37555    INPUT #4,WLN$:WLN(II,WRDC)=VAL(WLN$)
  2129. 37560    IF EOF(4)<>0 THEN 37600
  2130. 37565    INPUT #4,WFR$:'DUMMY
  2131. 37570    IF EOF(4)<>0 THEN 37600
  2132. 37575    INPUT #4,WRD$:WRD$(II,WRDC)=WRD$
  2133. 37580    WRDC=WRDC+1
  2134. 37590    IF WRDC<=128 THEN 37550
  2135. 37600    WRDM(II)=WRDC-1
  2136. 37610    CLOSE #4
  2137. 37620  NEXT II:DICEXF=1
  2138. 37630  RETURN
  2139. 37640 '
  2140. 37700 *HKISSF:'----------- 総計起算ファイル検出
  2141. 37710  IYM$=LEFT$(SSYMD$,6)
  2142. 37720  GOSUB *HKISRC
  2143. 37730  IF FIDX=0 THEN RSS=0 ELSE RSS=RI
  2144. 37740  RETURN
  2145. 37750 '
  2146. 39000 '//////////////////////////////////////////////////
  2147. 39010 *CONFIGファイルチェック'  V1.4 1994.06.19
  2148. 39020 '                         FOR HK T.Komura
  2149. 39030  CFLNO=0
  2150. 39040  OPEN "R",#1,"(1)HK.CFG"
  2151. 39050  FIELD #1,1 AS D$
  2152. 39060  IF LOF(1)=0 THEN *CFGFE1
  2153. 39070  CLOSE
  2154. 39080  OPEN "I",#1,"HK.CFG"
  2155. 39085  GOSUB *CFGREAD:ABOUT$=CFG$ :'-- about$         [0]
  2156. 39090  GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$        [1]
  2157. 39092  FILES ,C,ARY&:N=ARY&(1):DIM ARY$(N)
  2158. 39094  FILES ,N,ARY$:PRGDRV$=ARY$(0):ERASE ARY$
  2159. 39100  GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$        [2]
  2160. 39110  GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$        [3]
  2161. 39120  TIFDRV$=PRGDRV$+"\TIFF"    :'-- TIFDRV$        [4]
  2162. 39130  GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$        [5]
  2163. 39140  GOSUB *CFGREAD             :'-- SNDMF          [6]
  2164. 39150    IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
  2165. 39160    SNDMF=VAL(RIGHT$(CFG$,1))
  2166. 39170  GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$        [7]
  2167. 39180  GOSUB *CFGREAD             :'-- SWAIT          [8]
  2168. 39190    IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
  2169. 39200    SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
  2170. 39210  FOR II=1 TO 15             :'             [9]-[10]
  2171. 39220    GOSUB *CFGREAD:CFI$(II)=CFG$
  2172. 39230  NEXT II
  2173. 39240  GOSUB *CFGREAD             :'-- DICIF         [11]
  2174. 39250    IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
  2175. 39260    DICIF=VAL(RIGHT$(CFG$,1))
  2176. 39270  GOSUB *CFGREAD             :'-- DICSF         [11]
  2177. 39280    IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
  2178. 39290    DICSF=VAL(RIGHT$(CFG$,1))
  2179. 39300  GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$       [12]
  2180. 39310  GOSUB *CFGREAD             :'-- taxr$         [13]
  2181. 39320    IF LEFT$(CFG$,4)<>"TAXR" THEN *CFGFE2
  2182. 39330    TAXR$=RIGHT$(CFG$,LEN(CFG$)-5)
  2183. 39340  GOSUB *CFGREAD             :'-- CALCF         [14]
  2184. 39350    IF LEFT$(CFG$,5)<>"CALCF" THEN *CFGFE2
  2185. 39360    CALCF=VAL(RIGHT$(CFG$,1))
  2186. 39370  GOSUB *CFGREAD             :'--SDAY           [15]
  2187. 39380    IF LEFT$(CFG$,4)<>"SDAY" THEN *CFGFE2
  2188. 39390    SDAY=VAL(RIGHT$(CFG$,2))
  2189. 39400    SDAY$=RIGHT$(STR$(100+SDAY),2)
  2190. 39410    IF SDAY>0 THEN MOFF=0 ELSE MOFF=-1
  2191. 39420  GOSUB *CFGREAD             :'-- SSYMD$        [16]
  2192. 39430    IF LEFT$(CFG$,5)<>"SSYMD" THEN *CFGFE2
  2193. 39440    SSYMD$=RIGHT$(CFG$,8)
  2194. 39450  CLOSE
  2195. 39460  RETURN
  2196. 39470 *CFGREAD:'////////////////////////////////////
  2197. 39480  IF EOF(1)<>0 THEN *CFGFE3
  2198. 39490  LINE INPUT #1,CFG$:CFLNO=CFLNO+1
  2199. 39500  IF LEFT$(CFG$,1)="/" THEN 39480
  2200. 39510  RETURN
  2201. 39520 '------------------------------------------------------------------
  2202. 39530 *CFGFE1
  2203. 39540  CFE$="HK.CFG ファイルが見当たりません。 家計簿を終了します。"
  2204. 39550  GOTO *CFGFEP
  2205. 39560 *CFGFE2
  2206. 39570  CFE$="HK.CFGファイル 行番号"+STR$(CFLNO)+"の内容に誤りがあります。 家計簿を終了します。"
  2207. 39580  GOTO *CFGFEP
  2208. 39590 *CFGFE3
  2209. 39600  CFE$="HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
  2210. 39610  GOTO *CFGFEP
  2211. 39620 '-------------------------------------------------------------------
  2212. 39630 *CFGFEP
  2213. 39640  LOCATE 2,23:COLOR 6:PRINT CFE$;
  2214. 39650  CLOSE :WAIT SWAIT\1+1
  2215. 39660  STOP
  2216. 39670 '///////////////////////////////////////////////////////////////////
  2217. 40000 *ボタン座標:'-------------------------------------------------------
  2218. 40010 DATA 8   'SWGN        スイッチグループ数 
  2219. 40020 '/////////////////////////////
  2220. 40030 '-------------------- スイッチグループ[1] メインウインドウ
  2221. 40050 DATA 40               :'ボタン個数
  2222. 40060 '    X1 ,X2 ,Y1 ,Y2
  2223. 40070 DATA 000,639,000,479  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2224. 40080 DATA 000,000,000,000  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2225. 40085 '--------------------
  2226. 40090 '    XB1 XB2 YB1 YB2
  2227. 40100 DATA 124,137, 39, 49  ' ヌyr    01
  2228. 40110 DATA 124,137, 28, 38  ' ネyr    02 
  2229. 40120 DATA 176,189, 39, 49  ' ヌmn    03
  2230. 40130 DATA 176,189, 28, 38  ' ネmn    04 
  2231. 40140 DATA 256,269, 39, 49  ' ヌdy    05
  2232. 40150 DATA 256,269, 28, 38  ' ネdy    06
  2233. 40160 DATA 270,299, 39, 49  ' ヌwk    07
  2234. 40170 DATA 270,299, 28, 38  ' ネwk    08
  2235. 40180 DATA 544,591, 28, 54  '読  込   09
  2236. 40190 DATA 592,639, 28, 54  '保  存   10
  2237. 40200 DATA 616,634,308,322  '電  卓   11
  2238. 40210 DATA 616,634,323,337  '辞  書   12
  2239. 40220 DATA 616,634,338,352  '集  計   13
  2240. 40225 DATA 616,634,353,367  '定  額   14
  2241. 40230 '
  2242. 40231 DATA   0,123,  0, 22  '  HK2    15
  2243. 40232 DATA 124,168,  5, 22  '記  入   16
  2244. 40233 DATA 169,212,  5, 22  '検  索   17
  2245. 40234 DATA 213,256,  5, 22  '分  析   18
  2246. 40235 DATA 257,300,  5, 22  'カレンダー   19
  2247. 40236 DATA 301,344,  5, 22  '設  定   20
  2248. 40237 DATA 444,567,  0, 22  '日  付   21
  2249. 40238 DATA 568,591,  0, 22  '時  計   22
  2250. 40240 DATA 592,615,  0, 22  'HELP     23
  2251. 40250 DATA 614,639,  0, 22  'END      24
  2252. 40260 '
  2253. 40270 DATA  62,123, 84,118  '出来事   25
  2254. 40280 DATA  62,123,142,157  '給 与   26
  2255. 40290 DATA  62,123,158,173  '臨 時   27
  2256. 40300 DATA  62,123,174,189  '他収入   28
  2257. 40310 DATA  62,123,214,229  '食 費   29
  2258. 40320 DATA  62,123,230,245  '生活費   30
  2259. 40330 DATA  62,123,246,261  '洗濯代   31
  2260. 40340 DATA  62,123,262,277  '光熱費   32
  2261. 40350 DATA  62,123,278,293  '被服費   33
  2262. 40360 DATA  62,123,294,309  '交際費  34
  2263. 40370 DATA  62,123,310,325  '娯楽費   35
  2264. 40380 DATA  62,123,326,341  '酒 代   36
  2265. 40390 DATA  62,123,342,357  '車維持   37
  2266. 40400 DATA  62,123,358,373  '教育費   38
  2267. 40410 DATA  62,123,374,389  '雑 費   39
  2268. 40420 DATA  62,123,390,405  '他支出   40
  2269. 40430 '-------------------- スイッチグループ[2] 確認
  2270. 40432 DATA 3                :'ボタン個数
  2271. 40434 '    X1 ,X2 ,Y1 ,Y2
  2272. 40436 DATA 106,522,258,287  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2273. 40438 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2274. 40450 '--------------------
  2275. 40460 '    XB1 XB2 YB1 YB2 SWM$         SMC
  2276. 40470 DATA 338,369,  6, 23  ' OK     01
  2277. 40480 DATA 370,401,  6, 23  ' NG     02
  2278. 40485 DATA   8, 27,  5, 24  'drag
  2279. 40490 '-------------------- スイッチグループ(3) 項目辞書
  2280. 40492 DATA 22               :'ボタン個数
  2281. 40494 '    X1 ,X2 ,Y1 ,Y2
  2282. 40496 DATA  56,197,125,409  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2283. 40498 DATA 000,199,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2284. 40520 '    XB1 XB2 YB1 YB2 SWM$         SMC
  2285. 40530 DATA   6, 35, 25, 43  ' 取消
  2286. 40540 DATA  36, 65, 25, 43  ' 消去
  2287. 40550 DATA  66,101, 25, 43  ' 入力
  2288. 40560 DATA 102,118, 25, 43  ' ヌ
  2289. 40570 DATA 119,135, 25, 43  ' ネ
  2290. 40580 DATA 103,135, 55, 68  ' 1
  2291. 40590 DATA 103,135, 69, 82  ' 2
  2292. 40600 DATA 103,135, 83, 96  ' 3
  2293. 40610 DATA 103,135, 97,110  ' 4
  2294. 40620 DATA 103,135,111,124  ' 5
  2295. 40630 DATA 103,135,125,138  ' 6
  2296. 40640 DATA 103,135,139,152  ' 7
  2297. 40650 DATA 103,135,153,166  ' 8
  2298. 40660 DATA 103,135,167,180  ' 9
  2299. 40670 DATA 103,135,181,194  ' 10
  2300. 40680 DATA 103,135,195,208  ' 11
  2301. 40690 DATA 103,135,209,222  ' 12
  2302. 40700 DATA 103,135,223,236  ' 13
  2303. 40710 DATA 103,135,237,250  ' 14
  2304. 40720 DATA 103,135,251,264  ' 15
  2305. 40730 DATA 103,135,265,278  ' 16
  2306. 40735 DATA   5, 18,  4, 17  'drag
  2307. 40740 '-------------------- スイッチグループ(4) 電卓スイッチグループ
  2308. 40742 DATA 23               :'ボタン個数
  2309. 40744 '    X1 ,X2 ,Y1 ,Y2
  2310. 40746 DATA 318,459,104,388  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2311. 40748 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2312. 40770 '    XB1 XB2 YB1 YB2 SWM$ SMC
  2313. 40780 DATA   6, 70,219,248  '0
  2314. 40790 DATA   6, 38,189,218  '1
  2315. 40800 DATA  39, 70,189,218  '2
  2316. 40810 DATA  71,102,189,218  '3
  2317. 40820 DATA   6, 38,159,188  '4
  2318. 40830 DATA  39, 70,159,188  '5
  2319. 40840 DATA  71,102,159,188  '6
  2320. 40850 DATA   6, 38,129,158  '7
  2321. 40860 DATA  39, 70,129,158  '8
  2322. 40870 DATA  71,102,129,158  '9
  2323. 40880 DATA  71,102,219,248  '000
  2324. 40890 DATA 103,134,189,248  'cr1
  2325. 40900 DATA 103,134,159,188  '.
  2326. 40910 DATA 103,134,129,158  '=
  2327. 40920 DATA   6, 38, 99,128  '*
  2328. 40930 DATA  39, 70, 99,128  '/
  2329. 40940 DATA  71,102, 99,128  '+
  2330. 40950 DATA 103,134, 99,128  '-
  2331. 40960 DATA   6, 38, 69, 88  'off
  2332. 40970 DATA  71,102, 69, 88  'c
  2333. 40980 DATA 103,134, 69, 88  'ac
  2334. 40990 DATA  39, 70, 69, 88  'tax
  2335. 40995 DATA   6, 15,  3, 12  'drag
  2336. 41000 '-------------------- スイッチグループ(5) 定額編集スイッチグループ
  2337. 41012 DATA 43               :'ボタン個数
  2338. 41014 '    X1 ,X2 ,Y1 ,Y2
  2339. 41016 DATA 143,504,162,365  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2340. 41018 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2341. 41030 '    XB1 XB2 YB1 YB2 SWM$  SMC SWNO.
  2342. 41040 DATA   6, 25, 38, 53  'sel1    0
  2343. 41050 DATA   6, 25, 54, 69  'sel2    1
  2344. 41060 DATA   6, 25, 70, 85  'sel3    2
  2345. 41070 DATA   6, 25, 86,101  'sel4  3
  2346. 41080 DATA   6, 25,102,117  'sel5    4
  2347. 41090 DATA   6, 25,118,133  'sel6    5
  2348. 41100 DATA   6, 25,134,149  'sel7    6
  2349. 41110 DATA   6, 25,150,165  'sel8    7
  2350. 41120 DATA   6, 25,166,181  'sel9    8
  2351. 41130 DATA   6, 25,182,197  'sel0    9
  2352. 41140 '
  2353. 41150 DATA 274,293, 38, 53  'sel1    0
  2354. 41160 DATA 274,293, 54, 69  'sel2    1
  2355. 41170 DATA 274,293, 70, 85  'sel3    2
  2356. 41180 DATA 274,293, 86,101  'sel4  3
  2357. 41190 DATA 274,293,102,117  'sel5    4
  2358. 41200 DATA 274,293,118,133  'sel6    5
  2359. 41210 DATA 274,293,134,149  'sel7    6
  2360. 41220 DATA 274,293,150,165  'sel8    7
  2361. 41230 DATA 274,293,166,181  'sel9    8
  2362. 41240 DATA 274,293,182,197  'sel0    9
  2363. 41250 '
  2364. 41260 DATA 294,313, 38, 53  'sel1    0
  2365. 41270 DATA 294,313, 54, 69  'sel2    1
  2366. 41280 DATA 294,313, 70, 85  'sel3    2
  2367. 41290 DATA 294,313, 86,101  'sel4  3
  2368. 41300 DATA 294,313,102,117  'sel5    4
  2369. 41310 DATA 294,313,118,133  'sel6    5
  2370. 41320 DATA 294,313,134,149  'sel7    6
  2371. 41330 DATA 294,313,150,165  'sel8    7
  2372. 41340 DATA 294,313,166,181  'sel9    8
  2373. 41350 DATA 294,313,182,197  'sel0    9
  2374. 41360 '
  2375. 41370 DATA 319,355, 38, 53  'sel1    0
  2376. 41380 DATA 319,355, 54, 69  'sel2    1
  2377. 41390 DATA 319,355, 70, 85  'sel3    2
  2378. 41400 DATA 319,355, 86,101  'sel4  3
  2379. 41410 DATA 319,355,102,117  'sel5    4
  2380. 41420 DATA 319,355,118,133  'sel6    5
  2381. 41430 DATA 319,355,134,149  'sel7    6
  2382. 41440 DATA 319,355,150,165  'sel8    7
  2383. 41450 DATA 319,355,166,181  'sel9    8
  2384. 41460 DATA 319,355,182,197  'sel0    9
  2385. 41470 '
  2386. 41480 DATA 319,355,  6, 32  '入力  1
  2387. 41490 DATA 274,313,  6, 21  '終了  2
  2388. 41495 DATA   8, 21,  7, 20  'drag
  2389. 41500 '-------------------- スイッチグループ(6) 集計表スイッチグループ
  2390. 41502 DATA 2               :'ボタン個数
  2391. 41504 '    X1 ,X2 ,Y1 ,Y2
  2392. 41506 DATA 140,506, 59,380  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2393. 41508 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2394. 41520 '
  2395. 41530 '    XB1 XB2 YB1 YB2 SWM$     SMC SWNO.
  2396. 41540 DATA 323,361,  5, 20  '取消
  2397. 41550 DATA   6, 19,  6, 19  'drag
  2398. 41560 '
  2399. 41600 '-------------------- スイッチグループ(7) Helpグループ
  2400. 41602 DATA 6               :'ボタン個数
  2401. 41604 '    X1 ,X2 ,Y1 ,Y2
  2402. 41606 DATA  60,577,100,421  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2403. 41608 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2404. 41620 '
  2405. 41630 '    XB1 XB2 YB1 YB2 SWM$     SMC SWNO.
  2406. 41640 DATA 499,512, 25, 38  '前頁
  2407. 41650 DATA 499,512, 39, 52  '前行
  2408. 41660 DATA 499,512,289,302  '次行
  2409. 41670 DATA 499,512,303,316  '次頁
  2410. 41680 DATA 499,512,  6, 19  '終了
  2411. 41690 DATA   6, 17,  7, 18  'drag
  2412. 42540 '-------------------- スイッチグループ[8] デジタル時計
  2413. 42550 DATA 2                :'ボタン個数
  2414. 42560 '    X1 ,X2 ,Y1 ,Y2
  2415. 42570 DATA  46,607,100,306  :' ウィンドウ座標   W_X1,W_X2,W_Y1,W_Y2
  2416. 42580 DATA 000,639,023,460  :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
  2417. 42590 '--------------------
  2418. 42600 '    XB1 XB2 YB1 YB2 SWM$         SMC
  2419. 42610 DATA 543,561,  0, 18  ' end    01
  2420. 42620 DATA   3, 16,  3, 16  ' drag   02
  2421. 42630 '
  2422. 49900 '
  2423. 50290 *DCLOCKDATA
  2424. 50300 '    1,2,3,4,5,6,7 
  2425. 50310 DATA 1,1,1,1,1,1,0 '0     (1)
  2426. 50320 DATA 0,1,1,0,0,0,0 '1     ---
  2427. 50330 DATA 1,1,0,1,1,0,1 '2    |   |(2)
  2428. 50340 DATA 1,1,1,1,0,0,1 '3 (6)|(7)|        ●(8)
  2429. 50350 DATA 0,1,1,0,0,1,1 '4     ---
  2430. 50360 DATA 1,0,1,1,0,1,1 '5    |   |(3)     ●(9)
  2431. 50370 DATA 1,0,1,1,1,1,1 '6 (5)|   |
  2432. 50380 DATA 1,1,1,0,0,0,0 '7     ---
  2433. 50390 DATA 1,1,1,1,1,1,1 '8     (4)
  2434. 50400 DATA 1,1,1,1,0,1,1 '9    
  2435. 50410 '    dgx,dgy 
  2436. 50420 DATA  80, 40       '(1)
  2437. 50430 DATA 120, 70       '(2)
  2438. 50440 DATA 110,140       '(3)
  2439. 50450 DATA  80,180       '(4)
  2440. 50460 DATA  40,140       '(5)
  2441. 50470 DATA  50, 70       '(6)
  2442. 50480 DATA  80,100       '(7)
  2443. 50490 DATA 280, 80       '(8)
  2444. 50500 DATA 280,140       '(9)
  2445. 50510 '   ofset
  2446. 50520 DATA 0      '1桁
  2447. 50530 DATA 120    '2桁
  2448. 50540 DATA 280    '3桁
  2449. 50550 DATA 400    '4桁
  2450. 50560 '
  2451. 60000 ' 座標確認 DEBUG ROUTINE
  2452. 60010 'LOAD@ "e:\work\hk2\tiff\hk2help.tif",(0,0)'
  2453. 60020 MOUSE 0:MOUSE 1,0,0,1
  2454. 60030  IF MOUSE(2,1)<>0 THEN STOP
  2455. 60040  IF MOUSE(2,0)=0 THEN 60040
  2456. 60050  X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
  2457. 60060  LINE(0,460)-(639,479),PSET,0,BF
  2458. 60070  SYMBOL(0,460),"X="+STR$(X_M)+" Y="+STR$(Y_M),.75!,.75!,6
  2459. 60080  GOTO 60030
  2460. 60090 ' 
  2461.